Цвет фона (список?)

На изображении ниже серая область под моим списком и над моей кнопкой. Я хочу, чтобы эта область имела тот же цвет фона (черный), что и список.

Что мне кажется странным, так это то, что в эмуляторе он черный, а на моем телефоне он серый.

введите описание изображения здесь

Я пробовал установить цвет фона макета, списка и 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>

Любая помощь приветствуется.

ИЗМЕНИТЬ

Чтобы было ясно, у меня нет проблем со списком, когда он заполняет экран, когда есть только несколько элементов, которые не заполняют экран, я получаю этот серый фон ... Я бы предпочел, чтобы это был тот же черный фон, что и список.


person Barak    schedule 18.05.2012    source источник
comment
укажите android: cacheColorHint = # 000000 как # 00000000. И какая польза от этого TextView android: id = @ android: id / empty?   -  person Padma Kumar    schedule 18.05.2012


Ответы (4)


Глядя на ваш снимок экрана, похоже, что ваш телефон - это Motorola под управлением 2.3+ (Droid 3?). Я видел ту же «функцию» на некоторых телефонах Motorola.

Проверьте этот пост в блоге Motorola для полного ответа. По сути, добавьте свои 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">

Я предполагаю, что вы можете применить стиль непосредственно к списку, не передавая тему, но это решение будет работать для всех ListView в вашем приложении, как только вы примените его ко всем своим действиям в Manifest.

person tdevaux    schedule 19.05.2012
comment
Это выглядит многообещающе, и это как раз та проблема, с которой я столкнулся. Я попробую решения, когда вернусь домой, и приму ваш ответ, если они сработают. Спасибо! - person Barak; 19.05.2012
comment
Это действительно была проблема. Списки выглядят намного лучше. - person Barak; 19.05.2012
comment
О боже, ничего себе, это сработало после многочасовой работы. Мне не нужно было добавлять тему, просто укажите цвет нижнего колонтитула. Большое спасибо и голосов за! - person Janene Pappas; 19.04.2013

// это выглядит нормально

    <?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>
person Padma Kumar    schedule 18.05.2012
comment
У меня нет проблем со списком (как таковым) ... это область под ним, когда она не занимает весь экран. - person Barak; 18.05.2012
comment
Моя последняя попытка, можете ли вы удалить id android: id = @ android: id / empty. - person Padma Kumar; 18.05.2012
comment
Пробовал, результат тот же. :( Я очистил список, поэтому в игру вступил пустой TextView, и весь экран был черным. Добавьте элемент в список, и серый экран под списком снова вернется. Это должно быть связано со списком. - person Barak; 19.05.2012

Что ж, не похоже на то, что список расширяет оставшееся место? Это предназначено?

Кроме того, чтобы изменить серый цвет, разве вам не нужно было бы установить цвет фона «пустого» текстового представления, поскольку он, кажется, занимает всю высоту, я думаю, это текстовое представление, которое выглядит серым.

person Gophermofur    schedule 18.05.2012
comment
Неа. Просто попытался установить фон этого текстового представления на черный, такой же серый под списком. - person Barak; 18.05.2012

Попробуйте это (я не уверен, что это решит вашу проблему ...):

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

person amp    schedule 18.05.2012
comment
Нет, по-прежнему отображается серая область под списком, когда она не заполняет экран. - person Barak; 18.05.2012