【解決】GridViewにはandroid:listSelectorが設定されており、あるバックグラウンドを選択しても選択されます

8171 ワード

ListSelectorはlistviewの属性で、ある選択された色を制御するために使用されます.4.0以降のシステムでは、このlistSelectorは正常に表現され、2.3と2.2(他のバージョンもあるかもしれません)では、ある項目をクリックしてlistview全体を変更する背景色になります.
この問題を解決するには、このプロパティで直接色を使用することはできません.res/drawable/でshapeを作成する必要があります.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/my_list_item_pressed_color" /> </shape>
次にselectorを作成します.
xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/list_item_pressed_bg" /> <item android:drawable="@android:color/transparent" /> </selector>
最後にlistSelectorプロパティをこのselectorに設定します.
<ListView ..... android:listSelector="@drawable/list_item_selector" />
は2.2と2.3で正常に動作します.
リファレンスhttp://stackoverflow.com/questions/10989225/android-listview-entire-list-getting-selected