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