【问题标题】:Default background on ListView ItemListView 项目的默认背景
【发布时间】:2013-04-18 18:12:55
【问题描述】:

这个让我发疯:

我有一个 ListView,我想在它被选中时更改孩子的背景。列表项有一个默认背景,但是当项目上有背景时,所选项目不会改变颜色...

让我想象一下:

当我为 ListView 的子项设置背景颜色时,我得到了这个:

这是 ListView 中一个孩子的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/list_selector_normal">

    <TextView android:id="@+id/title_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="5dp" />

    <TextView android:id="@+id/description_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

但是当我在主布局中为 listView 设置一些选择器时

    android:listSelector="@drawable/list_selector"

选中的列表项不改变颜色...

但是当我从列表项(第一个代码块中的第 5 行)中删除背景时,选择器确实可以工作,但我的背景消失了:

选择器 xml 代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"
          android:drawable="@drawable/list_selector_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/list_selector_focussed" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@color/blue" /> <!-- hovered -->
    <item android:drawable="@color/blue" /> <!-- default -->
</selector>

有没有办法(应该有)我可以保留我的背景(第一张图片)并更改所选项目的颜色(第二张图片)?

【问题讨论】:

  • 看起来你的默认颜色是蓝色如果你把它改成透明怎么办:&lt;item android:drawable="@android:color/transparent" /&gt; &lt;!-- default --&gt;?
  • @Sam 透明也没有解决它......只有当我删除 LinearLayout 的背景颜色时才会有变化......
  • @Pragnani:我尝试添加 但这也没有用...
  • 我猜你的项目背景是完全不透明的?在这种情况下,选择器很可能根本不可见,因为背景遮住了它:默认情况下,选择器被绘制在孩子的“下方”。尝试设置android:drawSelectorOnTop="true" 看看是否会显示选择器。它不会很漂亮,但至少你会知道发生了什么。

标签: android listview background selector


【解决方案1】:

您可以尝试在 ListView xml 中设置普通背景

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/list_selector_normal"
        />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2012-10-24
    相关资源
    最近更新 更多