0

私は次のコードを持っていますListView

<ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/searchButton"
            android:divider="@color/DarkGoldenrod"
            android:dividerHeight="0.1dp"
            android:background="@drawable/list_selector"
            android:choiceMode="singleChoice" />

そして、これはドローアブル - のコードですlist_selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
   android:exitFadeDuration="@android:integer/config_shortAnimTime">

   <item android:drawable="@android:color/holo_green_dark" android:state_pressed="true"/>
   <item android:drawable="@android:color/holo_blue_light" android:state_selected="true"/>
   <item android:drawable="@android:color/holo_orange_light" android:state_activated="true"/>

</selector>

このセレクターはリストビュー全体に適用されていますが、個々のリスト項目に適用するにはどうすればよいですか?

ありがとうございました。

4

4 に答える 4

1

listviewリストビュー行のビューをインフレートし、そのスタイルをそのビュー全体のレイアウトに適用する場合、リストセレクターが全体に適用されます。view.setBackgroundResource(resid)

于 2013-10-05T07:54:01.080 に答える
0

リストビュー セレクターは、フォーカスを取得するため、ビュー全体に適用されます。ビューの一部のみに適用するには、その場合、リストビューを拡張するために使用されるレイアウト内のビューにドローアブルを適用します。

つまり、相対レイアウトと内部にテキストビューがあるとします。次に、ドローアブルをテキストビューに設定し、テキストビューに対して「setFocusable」を true に設定し、setfocusableon touch を true に設定します。

これを試して。

于 2013-10-05T10:45:30.313 に答える
0

要素をクリックしたときに要素のタイプを確認する必要があると思います。そして、アダプターでこのアイテムの背景を変更します。

于 2013-10-05T07:52:51.120 に答える
0

background の代わりに listSelector を使用する

 <ListView
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_below="@+id/searchButton"
  android:divider="@color/DarkGoldenrod"
  android:dividerHeight="0.1dp"
  android:listSelector="@drawable/list_selector"
  android:choiceMode="singleChoice" />
于 2013-10-05T07:41:06.037 に答える