【问题标题】:android listview background color stays gray, cannot be changed on gingerbread phoneandroid listview背景颜色保持灰色,不能在姜饼手机上更改
【发布时间】:2011-07-30 07:41:49
【问题描述】:

我的页面上有一个简单的列表视图。

    <ListView
    android:id="@+id/dinerListView"
    android:layout_width="fill_parent"
    android:layout_height="150dip"
    android:layout_weight=".40"
    android:background="@drawable/backrepeat"
        android:cacheColorHint="#00000000"
    android:layout_alignParentTop="true" />

无论我将背景设置为什么 - 无论是图像还是颜色,它都保持灰色。如果我用行填充列表视图,行背景颜色会适当显示。

此行为仅在姜饼手机(目前为止的 droid x 和 droid 3)上表现出来。在模拟器和其他 Froyo 手机中,它运行良好。

【问题讨论】:

  • 遇到同样的问题 - DroidX - 2.3.3

标签: android android-listview


【解决方案1】:

尝试在 ListView 的布局中设置 android:overScrollFooter="@null"

【讨论】:

  • 如果您需要向后兼容,请创建 /res/values-v10/styles.xml 并使用 parent=@android:style/Widget.ListView 定义新样式。为上述属性添加一个
【解决方案2】:

如何在 OS v2.3.3 及更高版本中绘制 ListView,以便最后一行项目下方的额外空间显示您指定的背景,而不是新的灰色默认页脚背景颜色:

overScrollFooter 对于大多数构建来说是不可接受的。
height="wrap_content" 本身仅在您的 ListView 下方没有其他小部件时才有效。 删除layout_alignParentBottom="true" 可以工作,但也会损坏屏幕布局,具体取决于 ListView 与其他小部件的关系。

减少 ListView 高度的最直接方法是,将 ListView 包装在另一个布局中,例如 LinearLayout。将 LinearLayout 设置为您希望的任何大小,并将内部 ListView 的 height 减少到 "wrap_content"。如果您需要更多解释和示例,请浏览此处:List View Footer Background on Android 2.3.3

【讨论】:

  • 设置 ListView height="wrap_content" 确实有效,但它可能会导致其他问题,因为当从适配器添加视图时,列表视图将多次调整大小,并且 getView() 将被多次调用因此,在每个可见行上。
【解决方案3】:

您可以创建一个包含列表视图的布局,然后将背景设置为您想要的图像/颜色。然后把布局的wrap_content属性放到activity的主布局下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多