具有动态背景色和选择器的Android ListView单元

问题描述

| 我有一个填充的列表视图,该列表视图具有不同的背景,具体取决于该项目所在的类别,所有这些都在视图适配器的
getView()
方法中设置。我的问题是这样做隐藏了选择器。 我遇到了一个很好的解决方案
<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">
    <item android:state_window_focused=\"false\" android:state_selected=\"true\" android:drawable=\"@android:color/transparent\" /> 
    <item android:state_selected=\"true\" android:drawable=\"@android:color/transparent\" /> 
    <item android:state_pressed=\"true\" android:state_selected=\"false\" android:drawable=\"@android:color/transparent\" /> 
    <item android:state_selected=\"false\" android:drawable=\"@color/some_color\" /> 
</selector>
这行得通,但是这意味着我必须为每个类别编写一个,对我来说似乎是很多冗余的代码。有没有一种方法可以使用此颜色选择器,但可以在代码中动态设置
state_selected=\"false\"
?     

解决方法

您的ListView带有任何适配器。无论是阵列适配器还是扩展基础适配器。我们将适配器设置为列表视图。我们的视图由该适配器管理。所以去那个适配器。因为你必须给一些条件。我给我的条件是,如果位置为2则为
view.setSelected(false)
。您也可以在此处将该背景颜色设置为禁用该视图。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...