android - ListView 选择器不适用于 ListViewItem 的背景集

标签 android android-listview

我有一个 ListView,它的选择器设置为纯色。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:id="@+id/assignmentSelectedItem" />
<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/assignmentsListView"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:listSelector="@drawable/assignment_list_selector" />
</LinearLayout>

assignment_list_selector.xml -

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"
    android:drawable="@android:color/white" />
 <item android:drawable="@android:color/transparent"/>
</selector>

在我的列表的 ListView.Adapter 中,我有一些项目的 View 背景设置为特定颜色。我的问题是,为什么选择器在为我的 ListView 显示选定颜色时根本不起作用?如果是这样,任何允许我仍然设置 View 背景颜色的解决方法的建议。

最佳答案

您可以在布局 .xml 文件中使用 ListView 属性 android:drawSelectorOnTop="true" 来创建 ListView ,将选择器绘制在列表项上方而不是下方。

如果您不想拥有项目的背景 + 列表选择器功能,您可以尝试另一种方法:使用透明列表选择器。并修改您的选择器以用作列表项的背景。例如

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@android:color/white" />
    <item android:drawable="@android:color/your_list_item_color"/>
</selector>

关于android - ListView 选择器不适用于 ListViewItem 的背景集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979875/

相关文章:

Android Studio 日历选择器

java - 向ListView添加标题时出现空指针

android - 防止键盘显示/隐藏时刷新 ListView

android - Xamarin.Android 项目无法在适用于 Android 的 Visual Studio 模拟器中部署

java - 像 Whatsapp 一样自定义 ImageView 裁剪

java - 由自定义 ArrayAdapter 中按钮的事件创建的 DialogFragment 始终具有相同的位置

java - Android ListView 根据页脚大小将内容包装到一定大小

android - 在可扩展 ListView 中切换组

android - 在 Android 中升级 OpenSSL

android - 在编辑 TextView 中编辑特定单词时如何删除底层线