( Android )Как заполнить фон ListView и сохранить прозрачность заголовка

У меня есть пользовательское фоновое изображение, которое заполняет весь экран позади ListView.

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

Если я устанавливаю фон ListView, то я получаю желаемый эффект всегда заполняя до нижней части экрана, даже с парой элементов (или вообще без ). Но это также закрывает прозрачный разделитель 10dp в заголовке, так что я больше не могу видеть пользовательский фон «сквозь» заголовок.

Может ли кто-нибудь указать мне правильный путь для получения и заполнения экрана при сохранении прозрачного разделителя внутри заголовка?

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

Спасибо!

РЕДАКТИРОВАТЬ:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:orientation="vertical">

    <include android:id="@+view_list_header/headertop"
        layout="@layout/view_list_item"/>

    **<LinearLayout android:id="@+view_list_header/ll_transparent_filler"
    android:layout_width="fill_parent" android:layout_height="10dp"/>**     

    <RelativeLayout android:id="@+view_list_header/sort" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <TextView.../> <ImageView.../> <TextView.../>
    </RelativeLayout>
</RelativeLayout>

Итак, я пробовал различные способы создания наполнителя 10dp,в настоящее время я использую «пустой» LinearLayout 10dp, чтобы я мог получить ссылку на него и установить его видимость в GONE, когда я хочу (, что я НЕ делаю в случае, когда я обсуждаю)

я устанавливаю фон ListView, как этот :listView.setBackgroundResource (ресурс ).

Опять же, когда я устанавливаю фон для этого ListView, я получаю желаемое поведение фона, всегда заполняющего весь экран, даже если количество элементов, которые я добавил в список (, которые, между прочим, используют одно и то же фонового ресурса, который я устанавливаю для ListView ), недостаточно для заполнения экрана. Но когда я это делаю, «прозрачное поле» 10dp в заголовке не видно, потому что за ним фон ListViews не позволяет увидеть основные представления.

Я предполагаю, что это происходит из-за того, что фон ListView также находится за представлениями верхнего и нижнего колонтитула.

Дело в том, что существует множество способов создать «прозрачное поле» в 10 dp между элементами, через которое будут видны основные представления. Моя проблема заключается в создании фона для «тела» ListView (, т.е. не верхнего/нижнего колонтитула ), который всегда заполняет экран, даже когда список частично заполнен или пуст и в то же время сохраняя эту прозрачность в заголовке, чтобы я мог видеть представления, которые находятся «за» ListView.

13
задан Jon W 5 May 2012 в 18:57
поделиться