Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android列表项选择器和分隔器_Android_Listview_Android Layout - Fatal编程技术网

android列表项选择器和分隔器

android列表项选择器和分隔器,android,listview,android-layout,Android,Listview,Android Layout,我有一个带有自定义分隔符的列表视图。分隔器只是一些颜色,高度为3dp。 我已经为列表中的每个项目添加了一个自定义选择器,因此单击项目时背景颜色会发生变化。我的选择器如下所示: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">: <item android:state_selected="tru

我有一个带有自定义分隔符的列表视图。分隔器只是一些颜色,高度为3dp。 我已经为列表中的每个项目添加了一个自定义选择器,因此单击项目时背景颜色会发生变化。我的选择器如下所示:

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

:
选择项目后,其颜色将按预期从灰色变为黄色。 但是,列表中所有分隔符的颜色也会更改。为什么会这样?
我该如何修复它呢?

我肯定,但也许您将分隔符设置为相同的可绘制分隔符,我将发布一个代码,帮助您更改分隔符的颜色。 像这样的

android:divider="#FFCC00"
android:dividerHeight="4px"

我认为,在你的例子中,你没有在选择器中写错误的状态。这可能就是问题所在。尝试编写一个完整的选择器XML,如下所示

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

:

我将禁用默认分隔符,并将自定义分隔符作为列表项背景的一部分(可能使用9-patch)。

在listselector中添加自定义选择器,如

<ListView 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:listSelector="@drawable/listitem_selector"/>


他的问题已经包括:分隔线只是某种颜色,高度为3dp。我知道,我只是提供了我最喜欢的方法。因为通常你需要一个更好的分隔符(例如,来自平面设计师)。他的问题已经包括:分隔符只是一些颜色,高度是3dp。是的,我知道,但我说,也许他设置了分隔符=“@dravable/somedrabale”,这就是我发布它的原因。如果没有选择状态,选择器不会选择默认状态,哪个背景是灰色的?@Maggie应该是这样的。这也是谷歌在文档和视频中的解释。这对你有什么帮助?