android – 维护片段中所选项目的高亮

前端之家收集整理的这篇文章主要介绍了android – 维护片段中所选项目的高亮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个布局有两个片段.左边的片段是一个使用SimpleCursorAdaptor的ListFragment,右边是一个填充了从左边片段列表中选择的项目的细节.我试图找出如何确保ListFragment中选定的项目保持突出显示,直到列表中的另一个项目被选中.

经过一些研究,我得到了尽量使用android:background =“@ drawable / item_selector”,我可以改变不同状态的颜色,但没有一个似乎坚持下去.我以为选择了…只是选择不同的项目,您所选择的项目仍然保持选择,这似乎是合乎逻辑的.

我甚至尝试使用v.setSelected(true);在我的Clickhandler希望它可能保持状态,但这也没有.

有没有我失踪的状态?我浏览了开发文档,没有什么其他的东西似乎恰当…

item_selector.xml

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

我不知道其他代码可能有什么帮助,所以随时问你可能认为必要的其他代码.

解决方法

答案是在进一步研究后的Android文档中(文档的两部分真的).

首先,在触摸模式下,没有选择或聚焦状态.

其次,默认情况下,listviews被设置为none的选择模式(意味着列表中的任何项目都不能有选择的状态).所有我要做的是改变选择模式(它可以是单个或多个,我只需要/想要的单)添加

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

然后我在选择器XML中使用了选择状态(转换为激活状态):

<item 
 android:state_activated="true" 
 android:drawable="@color/blue" />

应用在行布局xml文件作为背景:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="35dp"
    android:background="@drawable/item_selector"
    android:gravity="center_vertical"/>

我选择的项目现在显示为蓝色背景,直到选择了不同的项目.

请注意,这个(android:state_activated)需要Android API 11或更高版本.

原文链接:https://www.f2er.com/android/310423.html

猜你在找的Android相关文章