在 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 中设置 ImageView 的宽度?
在 Android 中设置 ListView 的“空白”区域的颜色