android listview selectorThe solution by dglmtn doesn't work when you have a 9-patch drawable with padding as background. Strange things happen, I don't even want to talk about it, if you have such a problem, you know them. Now, If you want to have a listview with different states and 9-patch drawables (it would work with any drawables and colors, I think) you have to do 2 things:
What you should do is first set the row_selector.xml: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas./apk/res/android" > <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/list_item_bg_pressed" /> <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/list_item_bg_focused" /> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/list_item_bg_focused" /> <item android:drawable="@drawable/list_item_bg_normal" /> </selector>
Don't forget the Now apply the selector to the items (row.xml): <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas./apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@drawable/row_selector" > ... </RelativeLayout>
Make a selector for the list (to get rid of the default one which ruins the effect) - list_selector.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas./apk/res/android" > <item android:state_enabled="true" android:state_pressed="true" android:drawable="@color/android:transparent" /> <item android:state_enabled="true" android:state_focused="true" android:drawable="@color/android:transparent" /> <item android:drawable="@color/android:transparent" /> </selector> Notice that it makes all the states transparent. That's what I meant by getting rid of the default states. Last, but not least - apply the selector to the listview: <ListView android:id="@+id/android:list" ... android:listSelector="@drawable/list_selector" /> |
|
来自: JUST SO LAZY > 《java\android》