我在LinearLayout中有一个带有ListView的android 2.1项目。 LinearLayout的背景设置为图像:
机器人:背景= “@绘制/背景”
我的意图是通过屏幕上填充的任何数据始终显示背景。它在大多数情况下都有效,但我遇到了几个怪癖。
1)在模拟器中,背景填满了屏幕,但在我的手机上没有。当应用程序启动时,我可以在顶部看到它的一小部分,并且当项目添加到ListView时会显示更多部分。我可以看到每一排背后的背景;只是不在没有排的地方。即使在手机上,如何让它填满屏幕?它是Droid X,如果重要的话。
2)在模拟器中,当我按住一行上的按钮并将鼠标移到其他行上时,背景将消失在所选行上。在电话上,这也发生了。我如何始终看到背景?
答案 0 :(得分:1)
首先,请确保您没有设置ListView
及其项目的背景属性。
将ListView
的缓存颜色提示属性设置为#000000(空白)。
您可以使用android:cacheColorHint =“@ color / blank”在xml中执行此操作。
或使用ListView.setCacheColorHint(0)
答案 1 :(得分:1)
您可以使用FrameLayout并添加..
android:scaleType="centerCrop"
,因此缩放后保持宽高比(layout_width
和layout_height
都设置为fill_parent
)layout_width
和layout_height
都设置为fill_parent
)您是否看到列表视图后面的图像还取决于您使用的列表视图元素。
还设置ListView的属性android:cacheColorHint="#00000000"
(透明)
答案 2 :(得分:0)
对于第一个问题,我认为您应该使列表视图填满屏幕上的所有可用空间,以便最大化其高度,例如 android:layout_height =“0dp”& android:layout_weight =“1”
对于第二个问题,您应该记住,当ListView的项目被聚焦时,它会显示其默认颜色。您可以在ListItems上使用选择器来使事情更加清晰&更好。