Как создать дизайн просмотра списка Android из предварительного просмотра Android L

#android #android-layout #android-listview #android-5.0-lollipop

#Android #android-layout #android-listview #android-5.0-lollipop

Вопрос:

Я создаю элемент списка стилей предварительного просмотра изображений Android L. Это мой код для этих похожих дизайнов.

// Drawable/list_item_bg.xml

 <?xml version="1.0" encoding="utf-8"?>

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
          <item>
                <shape
                 android:shape="rectangle">
                  <solid android:color="#E6E6E6" />
                </shape>
          </item>
          <item android:bottom="1dp">
              <shape
                    android:shape="rectangle">
                   <solid android:color="#FAFAFA" />
              </shape>
          </item>
      </layer-list>
  

// Drawable /list_icon_bg

 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="@color/list_grey_bg" />
</shape>
  

// Layout/list_item

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="72dp">

    <ImageView
        android:id="@ id/list_icon"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_margin="16dp"
        android:src="@drawable/thumb"
        android:background="@drawable/list_icon_bg"/>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:background="@drawable/list_item_bg"
        android:layout_toRightOf="@ id/list_icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true">

        <TextView
            android:id="@ id/label"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/primary_text"
            android:paddingRight="16dp"
            android:text="Sample Text" />

    </LinearLayout>

</RelativeLayout>
  

Но у меня проблема с выбранным состоянием элемента списка. Цвет фона выбранного элемента списка работает только в области значков. Цвет фона элемента списка выбранного состояния не работает в области LinearLayout. Как я могу исправить.

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

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

Комментарии:

1. я не могу полностью понять ваш вопрос, но попробуйте поместить "android:background="@drawable/list_icon_bg" строку в ваш родительский макет строки. может быть, это поможет вам.

2. Если я добавлю "android:background="@drawable/list_icon_bg" в родительский вид, разделительная линия будет отображаться во весь экран.

3. Возможно, вы используете значок щелчка и не передаете его в основной listview?

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

5. пожалуйста, попробуйте установить некоторую высоту родительского списка и строки «android: background =»@drawable / list_icon_bg» в вашем родительском макете строки. затем опубликуйте снимок экрана

Ответ №1:

 activity_main:
============


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/list_icon_bg">

    <ImageView
        android:id="@ id/list_icon"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_margin="16dp"
        android:src="@drawable/thumb"
        />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:background="@drawable/list_item_bg"
        android:layout_toRightOf="@ id/list_icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true">

        <TextView
            android:id="@ id/label"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/primary_text"
            android:paddingRight="16dp"
            android:text="Sample Text" />

    </LinearLayout>

</RelativeLayout>