2

CUSTOMListViewの選択したアイテムの色を変更する方法を知っています。しかし、通常のListViewの色を変更する方法がわかりません。

私はこれを試しました:

<ListView android:id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
    android:listSelector="@drawable/listitemselector">
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:state_pressed="true"
    android:drawable="@color/light_blue"></item>
</selector>

ただし、これによりListView全体の色が変わるだけです。セレクターの色を変更するためだけにCUSTOMListViewを実装したくありません。このための解決策を提供してください。

4

2 に答える 2

6

単純な色ではなく、形を背景にして試してみてください。これが私のプロジェクトの1つからの例です:

listselector_blue.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true" android:drawable="@drawable/selector_state_blue"/>
   <item android:drawable="@color/transparent"/>
</selector>

Selector_state_blue.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="270"
        android:endColor="#FF91B2FF"
        android:startColor="#4491B2FF" />

    <corners android:radius="10px" />

</shape>

ListViewを使用したアクティビティのレイアウトxml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:listSelector="@drawable/listselector_blue" />

</LinearLayout>
于 2012-04-15T07:28:46.990 に答える
2

LISTVIEW タグでこのセレクターを使用しないでください。代わりに、リストのビューでこのセレクターを使用します。つまり、リストのビュー (行のビュー) を拡張するために xml を使用している場合は、その xml でこのセレクターを使用するだけです。

于 2012-04-15T07:21:03.240 に答える