设置颜色项listview xml

Posted

技术标签:

【中文标题】设置颜色项listview xml【英文标题】:Set color item listview xml 【发布时间】:2014-06-15 20:23:57 【问题描述】:

我有一个导航抽屉,当我单击列表视图的一个项目时,我希望它会改变颜色。所以我有这个 xml 代码。

<?xml version="1.0" encoding="utf-8"?>

    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/navigation_drawer"
        android:layout_
        android:layout_>

    <FrameLayout 
        android:id="@+id/container"
        android:layout_
        android:layout_/>

    <ListView 
    android:id="@+id/listview"
        android:layout_
        android:layout_
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:textColor="@drawable/test"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:background="#2F2F2F"/> 

</android.support.v4.widget.DrawerLayout>

测试代码是

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="@android:color/black"/>
    <item android:state_focused="true" android:color="@android:color/black"/>
    <item android:state_pressed="true" android:color="@android:color/black"/>
    <item android:color="@android:color/black"/>

</selector>

但是当我点击时保持默认颜色并且不会变成黑色。为什么?问题出在哪里,我该如何解决?提前致谢。

【问题讨论】:

为什么都是black 【参考方案1】:

这是因为您更改的是 textView 的 textColor 而不是 ListView 内的视图。它不像 css。

您必须将 android:textColor="@drawable/test" 放入 TextView(或任何视图)

【讨论】:

是的,这可行,但单击后颜色不会保留。为什么?我该如何解决? 因为您可能需要一些状态,例如 state_active 或 state_activated,但我认为这只适用于 ToggleButton (developer.android.com/reference/android/graphics/drawable/…) 如果这不起作用,您可以添加视图状态,并且单击时,您将不得不手动更改颜色【参考方案2】:

在您的列表视图中使用android:listSelector="color/black"。 Refer here

【讨论】:

以上是关于设置颜色项listview xml的主要内容,如果未能解决你的问题,请参考以下文章

设置颜色项listview xml

Xamarin.Forms ListView:设置点击项的突出显示颜色

如何设置 WPF ListView 选定项颜色?

android listView 怎么指定项的背景设置

listview中items的图片怎么设置其大小?

将listview中的第一项设置为android的默认值