激活/选择ListView中的项目时,更改视图背景

时间:2013-11-09 11:23:56

标签: android android-layout android-listview android-listfragment

我要解释(或者至少尝试一下)我想要实现的目标,因为这让我发疯了。

我有一个ListView,项目具有以下布局:

<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”包含一个选择器,因此背景会根据项目的状态而变化。当我按下并释放项目时它工作正常但是当我用DPAD /轨迹球选择项目时它不起作用。我已经尝试了所有东西(state_activated,state_focused,state_selected ......)但没有任何效果。我正在尝试搜索解决方案,但看起来我找不到合适的搜索关键字。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

最后我修好了。问题在于我将项目放在选择器中的顺序(我在state_selected =“true”之前放了一个state_pressed =“false”)。

现在它完美无瑕。

谢谢大家的帮助。

答案 1 :(得分:0)

这很可能不起作用,因为根布局上方的某些布局会获得焦点(如果没有布局的其余部分则难以辨别)。