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" />
    <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>

任何帮助表示赞赏。

编辑

需要明确的是,当列表填满屏幕时,我对列表没有任何问题,当只有少数项目没有填满屏幕时,我会得到这个灰色背景......我更希望它是相同的黑色背景名单。

4

4 回答 4

8

查看您的屏幕截图,您的手机看起来像是运行 2.3+(Droid 3?)的摩托罗拉。我在一些摩托罗拉手机上看到了相同的“功能”。

查看摩托罗拉博客上的这篇文章以获得完整的答案。基本上,添加您的ListViewXML 属性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">

我想您可以直接将样式应用到列表中,而无需传递主题,但是一旦您将其应用于清单中的所有活动,此解决方案将适用于您的应用程序中的所有 ListView。

于 2012-05-19T14:48:00.723 回答
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>
于 2012-05-18T15:50:20.743 回答
0

嗯,看起来列表没有扩大剩余空间?这是故意的吗?

另外,要更改灰色,您是否不需要设置“空”文本视图的背景颜色,因为它似乎跨越了整个高度,我猜这是显示为灰色的文本视图。

于 2012-05-18T15:47:18.003 回答
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)

于 2012-05-18T15:54:25.797 回答