android - ListSelector 适用于整个列表

标签 android

我有一个像这样的列表选择器的简单列表。

<ListView android:id="@+id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:layout_below="@+id/round"
    android:listSelector="#99000000" android:clickable="true" android:cacheColorHint="#00000000" android:background="#00000000">
</ListView>

如您所见 android:listSelector="#99000000"但“黑色 alpha”颜色应用于整个列表,而不是所选项目。


这就是我现在拥有的,但整个列表仍然变黑

::listview_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@drawable/list_normal" />
  <item android:state_pressed="true"
        android:drawable="@drawable/list_pressed" />
  <item android:state_focused="true"
        android:drawable="@drawable/list_active" />
</selector>

::colors.xml

<resources>
    <drawable name="list_normal">#96FFFFFF</drawable>
    <drawable name="list_active">#66000000</drawable>
    <drawable name="list_pressed">#CA000000</drawable>
</resources>

::我列表中的xml标签

android:listSelector="@drawable/listview_background"

最佳答案

我遇到了同样的问题,在查看其中一个平台可绘制 XML 文件时,我注意到一种方法可以通过在 XML 中创建形状来消除仅为颜色创建图像文件的需要。

例如,而不是:

<item android:state_focused="true"
      android:drawable="@drawable/list_active" />

做:

<item android:state_focused="true">
    <shape>
        <solid android:color="#66000000" />
    </shape>
</item>

除了创建一个纯色的drawable之外,它的形状是灵活的,类似于一个简单的矢量对象。所有详细信息都可以在这里找到:http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

关于android - ListSelector 适用于整个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183447/

相关文章:

java - 如何将当前 UTC 时间上传到解析日期列?

android - FMX TEdit 在启用自动更正时复制第一个输入

android - 主题、样式还是硬编码?

android - 如何将纹理从一个 OpenGL 上下文传输到另一个

Android滑动效果动画

android - ButterKnife 不与 Jack 合作?

Android Studio 在调用 Java 接口(interface)中的静态方法的 Kotlin 项目中引发构建错误

android - 如何在 React Native 0.60-RC 中生成签名的 apk

java - 如何将 ScrollView 添加到抽屉导航

java - 创建选项卡时出错