Android:在ListView选择后保持蓝色背景

erw*_*wan 7 android listview tablet

我有一个ListView,它在手机上运行良好.现在我正在创建一个平板电脑用户界面,左边是ListView,右边有详细信息.

当我触摸某个项目时,只要按下它就会闪烁蓝色.我希望保持蓝色,直到选择了另一个项目,就像Nexus 7上的Gmail应用程序一样.

实现这一目标的最简洁方法是什么?我宁愿避免手动设置背景,我认为有一种方法可以将元素标记为"活动"元素并相应地对其进行主题化.

Com*_*are 18

实现这一目标的最简洁方法是什么?

您正在寻找的是被称为"激活"状态.为了使这项工作:

步骤1:在res/values-v11/,有一个实现的样式资源activated.例如,对于在AppTheme那里定义了声明的新项目,请使用以下内容:

<resources>

    <style name="AppTheme" parent="android:Theme.Holo.Light"></style>

    <style name="activated" parent="AppTheme">
        <item name="android:background">?android:attr/activatedBackgroundIndicator</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

步骤#2:res/values/为任何旧设备定义相同的样式,就像存根样式资源一样,因此对它的引用继续有效:

<resources>

    <style name="AppTheme" parent="android:Theme.Light"/>

    <style name="activated" parent="AppTheme"/>

</resources>
Run Code Online (Sandbox Code Playgroud)

步骤3:在您的布局XML资源中为该行中的行ListView添加style="@style/activated"到根元素的属性列表中

步骤#4:将其设置为ListView单选列表,例如以下行ListFragment:

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Run Code Online (Sandbox Code Playgroud)

您可以在此示例项目,此示例项目此示例项目中看到此操作.有关前两个示例的更多背景信息,请参阅此SO问题:Gmail三片段动画方案的完整工作示例?