Android - selectableItemBackground在点击项目时未显示

时间:2015-07-31 16:59:52

标签: android android-layout android-recyclerview

我有一个Recycler视图,他们的项目应该是可点击的。我希望所有行都应用?selectableItemBackground效果,但这不会发生。 imageview将所有项目布局作为背景占用。为什么可选效果不起作用?

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="?listPreferredItemHeightLarge"
    android:background="?selectableItemBackground"
    android:descendantFocusability="blocksDescendants">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true">
        <ImageView
            android:id="@+id/background"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/app_name"
            android:src="@drawable/holder"
            android:scaleType="centerCrop"
            android:focusableInTouchMode="false"/>

        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/black"
            android:alpha="0.3" />
    </FrameLayout>

    <br.com.lexsis.pizzahut.presentation.widgets.CustomFontTextView
        android:id="@+id/group_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:background="@android:color/transparent"
        style="@style/TextView.EMenu" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:-1)

您可以添加其他RelativeLayout并向其添加android:background="?attr/selectableItemBackground"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="?listPreferredItemHeightLarge"
    android:background="?selectableItemBackground"
    android:descendantFocusability="blocksDescendants">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/selectableItemBackground">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true">

            <ImageView
                android:id="@+id/background"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:contentDescription="@string/app_name"
                android:src="@drawable/holder"
                android:scaleType="centerCrop"
                android:focusableInTouchMode="false"/>

            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/black"
                android:alpha="0.3" />

        </FrameLayout>

        <br.com.lexsis.pizzahut.presentation.widgets.CustomFontTextView
            android:id="@+id/group_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:background="@android:color/transparent"
            style="@style/TextView.EMenu" />

    </RelativeLayout>

</RelativeLayout>

将它设置为根布局对我来说无效。