私はリストビューを持っており、カスタムビュー(それぞれ画像+テキスト)を表示しています。 これらのビューは、ユーザーがそれらを選択したときに異なる外観にします。 (オーバーレイを使用していますが、今はバックグラウンドで動作させようとしています)Android - リストビューでカスタムビューを選択できるようにする
Android.Resource.Layout.TestListItem
でローを膨張させると、そのセルがクリックされたときに選択された状態が表示されます。
しかし、私は自分のカスタムレイアウトで同様の効果を得ようとしますが、それを動作させることはできません。何か不足していますか?
私は、このビューのレイアウトがあります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rowbackground">
... (textview and image)
とrowbackground.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/bg_a" />
<item android:state_checked="true" android:drawable="@drawable/bg_b" />
<item android:state_pressed="true" android:drawable="@drawable/bg_c" />
<item android:state_selected="false" android:state_checked="false" android:state_pressed="false" android:drawable="@drawable/bg_d"/>
</selector>
しかし、唯一の2つの作品は、 "デフォルト" と "押された" 状態です。 「選択された」ものではありません。 (私はいくつかのサンプルでそれを確認しました)
カスタムレイアウトビューを選択可能にするにはどうしたらいいですか?
なぜ、android.R.layout.test_list_itemが動作するのは、test_list_itemがTextViewでレイアウトがLinearLayoutのため、 –
tryeがLinearLayoutにandroid:focusable = "false"を追加するか、TextViewをレイアウトを作成し、その属性leftDrawableを使用してTextViewの左側に画像を表示すると、TextViewとImageだけの場合に便利です。 –
ありがとうございます。おそらくそうですが、TextViewをLinearLayoutではなく選択可能にするのは何ですか?アンドロイド:focusable = "false"を追加しようとしましたが、変更されませんでした。 –