Фон списка - серый на Droid 3 - PullRequest
       0

Фон списка - серый на Droid 3

12 голосов
/ 30 августа 2011

У меня есть список с пользовательским фоном. Он отображает тонкую белую линию с обеих сторон на черном фоне. Отлично работает на всех моих тестовых телефонах (Galaxy Captivate, Vibrant, Nexus 1, G Tablet, Archos 32, Droid). Я только что получил Droid 3 для тестирования, и на этом телефоне фон списка, где нет элементов, серый. Элементы списка имеют правильный черный фон.

Вот макет, содержащий представление списка. У списка есть белое текстовое поле с фоном сверху и снизу, а фон для списка можно нарисовать (я знаю, что он называется трехгранником, но это всего лишь две границы).

<RelativeLayout
    android:layout_below="@id/divider01"
    android:layout_above="@id/save_current_button"
    android:id="@+id/profile_middle_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="3dip"
    android:orientation="vertical">
    <TextView  android:id="@+id/user_profile_row"
        android:text="@string/user_profiles_label"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="@android:color/black"
        android:background="@drawable/roundedtop"/>
    <TextView android:id="@+id/current_profile_name"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="#2B497B"
        android:background="@drawable/roundedbottom"/>
    <ListView android:id="@id/android:list"
        android:layout_below="@id/user_profile_row"
        android:layout_above="@id/current_profile_name"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="3dip"
        android:paddingRight="3dip"
        android:drawSelectorOnTop="false"
        android:background="@drawable/three_side_border"
        android:cacheColorHint="#ffffffff"/>
</RelativeLayout>

Вот прорисовка - она ​​должна сделать фон черным.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFFFF" />
        </shape>
    </item>

    <item android:left="3dp" android:right="3dp"> 
        <shape android:shape="rectangle">
            <solid android:color="#FF000000" />
        </shape>
    </item>
</layer-list>

Я заметил, что в моем элементе списка xml у меня нет альфа-слоя, указанного в моих цветах, поэтому я попытался снять ведущую FF на моем рисованном объекте, но получилось то же самое.

У кого-нибудь есть идеи, где я могу посмотреть, чтобы это исправить? Это выглядит ужасно на хорошем телефоне.

Спасибо, Грег

1 Ответ

24 голосов
/ 31 августа 2011

Друг нашел комментарий на форуме Motorola:

Motorola изменила значения атрибутов для встроенных тем на устройствах Moto с 2.3.«Если вы установите overScrollFooter на @null, фон нижней части списка станет прозрачным, а фоновое изображение просвечивает .... Если вы хотите фон нижней части списка, но другой, вы можете установитьoverScrollFooter в цвет или рисунок ... "

android:overScrollFooter="#aa000000"
android:overScrollFooter="@drawable/my_drawable"

http://community.developer.motorola.com/t5/MOTODEV-Blog/Why-Does-My-ListView-Look-Different/ba-p/17462

Я до сих пор не совсем уверен, что они делают при рендеринге этого пространства, ноЯ могу заставить его работать.Если я использую параметр drawable и задаю его для рисования с левой и правой границами, этот объект рисуется внутри границы из фона списка - то есть он все равно как-то показывает первый элемент в моем двухслойном фоне, который можно рисовать, поэтомупространство под элементами моего списка теперь имеет более широкую границу, но оно черное.Это по крайней мере согласуется с моим более ранним тестом, когда я изменил первый слой на синий и получил синюю линию на всю высоту списка.Если я просто выберу прямой черный #ff000000, то просмотр списка будет выглядеть так же, как и все мои другие телефоны.Поэтому я не уверен, как они вычисляют пространство нижнего колонтитула - я не вижу, как они узнали бы, что у меня есть двухслойный объект и я просто заменяю второй слой.Должно быть что-то еще, что я просто не понимаю, но это работает.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...