在下图中,我的列表视图下方和我的按钮上方是一个灰色区域。我希望该区域具有与列表相同的背景颜色(黑色)。
对我来说似乎很奇怪的是,在模拟器中它是黑色的,但在我的手机上,它是灰色的。
我已尝试设置布局,列表和cachecolorhint的背景颜色......无论如何,它都会保持灰色。
目前的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >
<TextView
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="27dp"
android:layout_alignParentTop="true"
android:layout_gravity="center|center_vertical"
android:gravity="center"
android:textColor="#00ccff"
android:textSize="20dp" />
<TextView
android:id="@+id/horizontalline"
android:layout_width="match_parent"
android:layout_height="2dip"
android:layout_below="@id/header"
android:background="#8b8b8b"
android:paddingBottom="2dip"
android:paddingTop="2dip" />
<Button
android:id="@+id/AddButton"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:gravity="center|top"
android:textSize="12dp" >
</Button>
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@id/horizontalline"
android:background="#000000"
android:cacheColorHint="#000000"
android:layout_above="@id/AddButton"
android:drawSelectorOnTop="false"
android:listSelector="@android:color/transparent" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/header"
android:gravity="center" />
</RelativeLayout>
任何帮助表示感谢。
修改
要清楚,当它填满屏幕时我对列表没有任何问题,当只有少数项目没有填满屏幕时,我得到了这个灰色背景......我更希望它是相同的黑色背景列表。
答案 0 :(得分:8)
查看截图,看起来您的手机是摩托罗拉运行2.3+(Droid 3?)。 我在一些摩托罗拉手机上看过同样的“功能”。
检查this post on Motorola Blog以获得完整答案。
基本上,添加ListView
XML属性android:overScrollFooter="#000000"
。
它仅适用于2.3多种设备,因此您宁愿将其放在res/values-v10/styles.xml
中的样式中:
<style name="MyListView" parent="@android:style/Widget.ListView">
<item name="android:listSelector">@drawable/list_selector</item>
<item name="android:overScrollFooter">#000000</item>
</style>
然后将其添加到您的theme.xml
:
<style name="MyTheme" parent="android:Theme">
<item name="android:windowBackground">@null</item>
<item name="android:listViewStyle">@style/MyListView</item>
</style>
最后,将自定义主题应用于AndroidManifest中的活动:
<activity android:name="com.listtest.MainActivity"
android:label="@string/app_name"
android:theme="@style/MyTheme">
我猜您可以直接将样式应用到列表中,而不会传递主题,但只要您将其应用于Manifest中的所有活动,此解决方案就可以适用于应用中的所有ListView。
答案 1 :(得分:1)
//这对我来说很好看
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >
<TextView
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="27dp"
android:layout_alignParentTop="true"
android:layout_gravity="center|center_vertical"
android:gravity="center"
android:textColor="#00ccff"
android:textSize="20dp" />
<TextView
android:id="@+id/horizontalline"
android:layout_width="match_parent"
android:layout_height="2dip"
android:layout_below="@id/header"
android:background="#8b8b8b"
android:paddingBottom="2dip"
android:paddingTop="2dip" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/header"
android:gravity="center"
android:background="#000"
/>
<Button
android:id="@+id/AddButton"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:gravity="center|top"
android:textSize="12dp" >
</Button>
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@id/horizontalline"
android:background="#000000"
android:cacheColorHint="#000000"
android:layout_above="@id/AddButton"
android:drawSelectorOnTop="false"
android:listSelector="@android:color/transparent" />
</RelativeLayout>
答案 2 :(得分:0)
嗯,它不像一样,就像列表正在扩展剩余空间一样?那是为了吗?
另外,要更改灰色,您不需要设置“空”文本视图的背景颜色,因为它似乎跨越整个高度,我猜这是看起来是灰色的文本视图。
答案 3 :(得分:0)
试试这个(我不确定这是否能解决你的问题......):
<ListView
android:id="@+id/my_list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@id/horizontalline"
android:background="#000000"
android:cacheColorHint="#000000"
android:layout_above="@id/AddButton"
android:drawSelectorOnTop="false"
android:listSelector="@android:color/transparent" />
(列表视图的高度应始终为fill_parent)