9

我試圖添加Ripple效果到RecyclerView的項目。我在網上看了一下,但找不到我需要的東西。我曾嘗試android:background屬性的RecyclerView本身並將其設置爲"?android:selectableItemBackground",但沒有奏效:Recyclerview item點擊漣漪效應

我的父母佈局是這樣的

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/dailyTaskList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:focusable="true" 
     android:scrollbars="vertical" /> 
</LinearLayout> 

和適配器模板下面

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="5dp"> 

      <TextView 
       android:id="@+id/txtTitle" 
       style="@style/kaho_panel_sub_heading_textview_style" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView 
       android:id="@+id/txtDate" 
       style="@style/kaho_content_small_textview_style" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

    </LinearLayout> 
</LinearLayout> 
顯示

請給我解決方案

+0

你試過哪個父母android:background =「?android:attr/selectableItemBackground」'? –

回答

27

添加android:background="?attr/selectableItemBackground"到您的項目佈局應該做的伎倆的最頂部的父。 但是在某些情況下,它仍然錯過了動畫,添加了android:clickable="true"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/selectableItemBackground" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:padding="5dp"> 

     <TextView 
      android:id="@+id/txtTitle" 
      style="@style/kaho_panel_sub_heading_textview_style" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <TextView 
      android:id="@+id/txtDate" 
      style="@style/kaho_content_small_textview_style" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 
</LinearLayout> 
1

在您的recyclerView項目父項中,添加

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

象下面這樣:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?android:attr/selectableItemBackground" 
    android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="5dp"> 

      <TextView 
       android:id="@+id/txtTitle" 
       style="@style/kaho_panel_sub_heading_textview_style" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView 
       android:id="@+id/txtDate" 
       style="@style/kaho_content_small_textview_style" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 


    </LinearLayout> 

</LinearLayout>