Miguel Botón
Miguel Botón

Reputation: 766

Change the view background when an item from a ListView is activated/selected

I'm going to explain (or at least try that) what I want to achieve because this is driving me crazy.

I have a ListView and the items have the following layout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/item_background"
        android:duplicateParentState="true" >

        ... some contents here...

    </FrameLayout>

</FrameLayout>

"item_background.xml" contains a selector so the background changes depending on the item's state. It's working fine when I press and release the item but it's not working when I 'select' the item with a DPAD/Trackball. I have tried everything (state_activated, state_focused, state_selected...) but nothing works. I'm trying to search for a solution but looks like I can't find the proper keywords to search for.

Any ideas?

Thank you!

Upvotes: 0

Views: 213

Answers (2)

Miguel Bot&#243;n
Miguel Bot&#243;n

Reputation: 766

Finally I fixed it. The problem was in the order I put the items inside the selector (I put a state_pressed="false" before the state_selected="true").

Now it works flawlessly.

Thank you everyone for your help.

Upvotes: 1

meredrica
meredrica

Reputation: 2563

This does most likely not work because some layout above your root layout gets the focus (hard to tell without the rest of the layout).

Upvotes: 0

Related Questions