在 Android 中设置 ListView 的“空白”区域的颜色

Posted

技术标签:

【中文标题】在 Android 中设置 ListView 的“空白”区域的颜色【英文标题】:Set color of 'empty' area of ListView in Android 【发布时间】:2011-09-24 09:36:53 【问题描述】:

当我的列表视图没有完全充满列表视图项目时(例如,我的列表视图足够高,可以容纳 8 个项目,但我只有 2 个),空白区域在我的 Droid X 上显示为灰色。在模拟器中空白区域显示为黑色。

如何将“空白”区域设置为透明?

我尝试过设置背景颜色、缓存提示,但这些似乎只是改变了列表视图的背景颜色,其中包含项目,而不是空白区域。

【问题讨论】:

您是否尝试将列表视图高度设置为fill_parent?也许设置背景颜色然后会给出你正在寻找的结果 【参考方案1】:

摩托罗拉曾经有一篇关于这种行为的博客文章,但他们的博客不再在线 - 答案是在 Motoblur 2.3 上,他们设置了默认的过度滚动页脚,可以通过设置 android:overScrollFooter="@null" 来修复,但仅限适用于 Android 2.3+。

他们推荐的应用程序范围的解决方案是使用自定义主题和自定义 listViewStyle 设置仅在具有该属性集的 values-v10 文件夹中。

【讨论】:

太好了,我遇到了同样的问题,这个答案解决了我的问题......谢谢! 博客文章链接似乎不再链接与此特定问题相关的任何地方(也许他们删除了它?),但这个信息仍然对我有用。对于任何以编程方式实例化其 ListView 的人,请注意您可以在 API 级别 9 之后调用它的 setOverscrollFooter() 方法。它的参数应该为 null。 是的,摩托罗拉似乎删除了他们的开发者博客,现在将所有链接重定向到随机位置,而不是 404 或返回正确的内容。我会删除链接。【参考方案2】:

解决 MotoBlur 错误的程序解决方案:

if (Build.VERSION.SDK_INT >= 8 && Build.VERSION.SDK_INT <= 10) 
   mListView.setOverscrollFooter(null);

【讨论】:

【参考方案3】:

看起来删除 layout_alignParentBottom="true" 成功了。因此,与其更改灰色,列表视图仅足够大以绘制所需的项目。

【讨论】:

【参考方案4】:

删除layout_alignParentBottom="true" 并更改height="wrap_content" 还不够。如果屏幕底部或 ListView 下方没有其他小部件,则这些解决方案有效。

但是,如果ListView下面还有其他布局项,那么就必须把ListView包裹在另一个布局中,比如LinearLayout,这样容器就可以占据必要的高度(fill_parent),而里面的ListView可以允许缩小自身 (wrap_content),这样修改后的 Motorola OS v2.3.3 页脚行为将不会显示 ListView 下方的灰色背景。

这里是一个例子:List View Footer Background on Android 2.3.3

【讨论】:

以上是关于在 Android 中设置 ListView 的“空白”区域的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android在listview中设置单项背景颜色

如何在 android ListView 中设置 ImageView 的宽度?

在 ListView 中设置页脚布局时出现问题

在 Android 中设置 ListView 的“空白”区域的颜色

我在 android listview 中设置了 Enabled false 但 listview 不滚动

如何在 android listview 中设置页脚以动态拉伸到底部?