ListView の行でボタンを押すと問題が発生します。各 Button の background 属性は、XML セレクター ファイルを参照します。ボタンを押して別の画像を選択するため。OnClickListener からプレス イベントを取得できますが、ステート セレクターが壊れて、 と でプレスを登録しませ android:state_pressed="true"
んandroid:state_focused="false"
。
android:descendantFocusability="blocksDescendants"
ボタンの親/ルート レイアウト XML から削除すると、次に、プレス状態は機能しますが、ListView行のどこに触れても発火します。これは面倒です。
私の問題: 内部のボタンとは別に、行のプレス/デフォルト状態を管理できません。それらは互いに干渉します。
コード:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainListLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
..........
さらに下の行項目ボタン:
<Button
android:id="@+id/deleteButton"
android:background="@drawable/del_button_selector"
.....
.....
/>
..........
そして drawable/del_button_selector:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/deleteico" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/deletepressed" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/deleteico" android:state_focused="false" android:state_pressed="true" />
最後のセレクター行で描画可能な背景を変更しても機能しません。押された画像が表示されますが、ボタンから離れた行のどこをクリックしてもかまいません。
ボタン クリック イベントの背景を変更できますが、ボタンを離したときにデフォルトの背景に戻す必要があり、これをキャプチャするのは困難です (?)。リスナーでプレス/リリース イベントをキャプチャできれば、ボタンのみに最適です。
どんな助けでも大歓迎です!ありがとう!