背景颜色(listview?)

时间:2012-05-18 15:38:14

标签: android android-layout android-widget

在下图中,我的列表视图下方和我的按钮上方是一个灰色区域。我希望该区域具有与列表相同的背景颜色(黑色)。

对我来说似乎很奇怪的是,在模拟器中它是黑色的,但在我的手机上,它是灰色的。

enter image description here

我已尝试设置布局,列表和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>

任何帮助表示感谢。

修改

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

4 个答案:

答案 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)

相关问题