3

Я добавил selectableItemBackground в CardView, который отображается в режиме recyclerview. каждый вид экрана и изображения CardView. каждая карта может быть выбрана, и для того, чтобы добавить эффект ряби при нажатии я добавил:Добавление selectableItemBackground, а также цветной фон

android:background="?attr/selectableItemBackground" 

Проблема заключается в том, что теперь я наклоняю установить цвет фона. эти две линии вместе показывают ошибку:

android:background="?attr/selectableItemBackground" 
android:background="#FFFFFF" 

Как цвет фона макета, а также добавить мультипликационный эффект с selectableItemBackground.

полный код card_view.xml:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="2dp" 
    card_view:cardCornerRadius="10dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="?attr/selectableItemBackground" 
     android:orientation="vertical"> 
     <!--CANT ADD THIS: android:background="#FFFFFF"--> 

     <TextView 
      android:id="@+id/singleTextLine" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="3dp" 
      android:text="Test" 
      android:textSize="30dp" /> 

     <ImageView 
      android:id="@+id/singleImage" 
      android:layout_width="fill_parent" 
      android:layout_height="125dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="3dp" /> 

    </LinearLayout> 
</android.support.v7.widget.CardView> 

Проблема заключается в том, что я не могу цвет фона белого цвета, а комбинируя атр/selectableItemBackground для волнового эффекта, а затем она выглядит следующим образом: enter image description here

+0

Вы пробовали селектор? –

+0

Жаль проверить это спасибо –

+0

есть кто-нибудь есть ответ на этот вопрос @RahulSharma – Killer

ответ

7

у вас есть 2 варианта:

1: Добавить родителю линейное расположение:

родительского компоновщик имеет BackgroundColor и расположения ребенка имеет пульсацию Эфект

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FFFFFF" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="?attr/selectableItemBackground" 
     android:clickable="true" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/singleTextLine" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="3dp" 
      android:text="Test" 
      android:textSize="30dp" /> 

     <ImageView 
      android:id="@+id/singleImage" 
      android:layout_width="fill_parent" 
      android:layout_height="125dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="3dp" /> 


    </LinearLayout> 
</LinearLayout> 

2: Оптон: Создать Drawable ресурса: bg_ripple.xml

один в папке вытяжки

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@color/gray"/> 
    <item android:drawable="@color/white"/> 
</selector> 

других в папке вытяжки-v21

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/gray"> 
    <item android:drawable="@color/white" /> 
</ripple> 

Затем установите в качестве фона этого ресурса макета:

android:background="@drawable/bg_ripple" 
1

еще один простого путь, который положил один более FrameLayout (установка цвета фона) и включает оригинал TextView

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/category_numbers"> 
<TextView 
    android:id="@+id/numbers" 
    style="@style/CategoryStyle" 
    android:background="?android:selectableItemBackground" 
    android:text="@string/category_numbers" /> 
</FrameLayout>