I have a ListView where each list item is a custom layout based on a RelativeLayout, it is clickable and it has a custom selector. En plus, it has a sub-RelativeLayout which is also clickable and it has its own selector.
Something like this:
---------------
| |
| ___ |
| | | |
---------------
Everything works perfectly but the problem is that when I click on the parent relative layout, the child selector assumes the state of the parent selector. I tried to set
android:duplicateParentState="false"
on the child but nothing has changed.
Any idea? Thanks in advance
Can you please show your code of ListView's item and selectors? To my mind you've made some mistakes, when implemented it. Here is my example of item and its selectors. It works fine for me:
Video, how my implementation works: >click to open<
list_view_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="40dp"
android:background="@drawable/relative_selector">
<RelativeLayout
android:layout_width="300dp"
android:layout_height="100dp"
android:background="@drawable/child_selector_1"
android:clickable="true">
<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:background="@drawable/child_selector_2"
android:clickable="true"/>
</RelativeLayout>
</RelativeLayout>
relative_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<inset xmlns:android="http://schemas.android.com/apk/res/android">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_blue_bright" />
</shape>
</inset>
</item>
</selector>
child_selector_1.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed state -->
<item android:state_pressed="true">
<inset xmlns:android="http://schemas.android.com/apk/res/android">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_orange_dark" />
</shape>
</inset>
</item>
<!-- focused state -->
<item android:state_focused="true">
<inset xmlns:android="http://schemas.android.com/apk/res/android">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_orange_dark" />
</shape>
</inset>
</item>
<!-- normal state -->
<item>
<inset xmlns:android="http://schemas.android.com/apk/res/android">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark" />
</shape>
</inset>
</item>
</selector>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With