android listview alternate row color BUT with default cursor selection

后端 未结 1 1563
走了就别回头了
走了就别回头了 2021-01-06 16:11

i have been all over the web, stackoverflow included and just can\'t seem to get a clear complete way to

I want to create a ListView that

1) has alternating

相关标签:
1条回答
  • 2021-01-06 16:53

    A workaround is to use 2 selectors. From your adapter, instead of setting 2 colors, you set 2 selectors.

    if (position % 2 == 0) {
      view.setBackgroundResource(R.drawable.selector_1);
    } else {
      view.setBackgroundResource(R.drawable.selector_2);
    }
    

    selector_1 is defined in selector_1.xml like this:

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

    selector_2 is defined in selector_2.xml like this:

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

    So that, you have a bi-color listview and a third color/shape/whatever-you-want for selected item.

    0 讨论(0)
提交回复
热议问题