0

RecyclerViewのアイテムの長いクリックにリップル効果を追加しようとしています。私はオンラインで見ましたが、私が必要なものを見つけることができませんでした。ここに私のソースRecyclerviewアイテムリップル効果を長くクリック

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainLayout" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="?attr/selectableItemBackground" 
android:orientation="vertical"> 


<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 

    > 
    <LinearLayout 
     android:id="@+id/rightlayout" 
     android:layout_width="85dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/u_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:gravity="right" 
      android:maxLines="1" 
      android:paddingRight="5dp" 
      android:singleLine="true" 
      android:textColor="#808080" 
      android:textSize="@dimen/u_common_text_size_small_v1" /> 


     <TextView 
      android:id="@+id/u_amount" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:gravity="right" 
      android:maxLines="1" 
      android:paddingRight="5dp" 
      android:singleLine="true" 
      android:textColor="#000000" 
      android:textSize="@dimen/u_common_text_size" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 

     android:layout_alignRight="@+id/rightlayout" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="@dimen/u_common_margin_left" 
     android:layout_marginRight="85dp" 

     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/u_id" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:maxLines="1" 
      android:paddingRight="5dp" 
      android:singleLine="true" 
      android:text="teee" 
      android:textColor="#808080" 
      android:textSize="@dimen/u_common_text_size_small_v1" /> 


     <TextView 
      android:id="@+id/u_title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:maxLines="1" 
      android:paddingRight="5dp" 
      android:singleLine="true" 
      android:text="teee" 
      android:textColor="#000000" 
      android:textSize="@dimen/u_common_text_size" /> 
    </LinearLayout> 


</RelativeLayout> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/listview_dividerHeight" 
    android:background="#cccccc" /> 

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/nestedScrollview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/customTabLayout"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clickable="true" /> 
</android.support.v4.widget.NestedScrollView> 

がrecyclerViewですが、それはここで を動作しませんでした:RecyclerView自体にbackground属性と「selectableItemBackgroundアンドロイド?」に設定します。私は、アンドロイドを試してみましたアダプタのコードスニペット

transactionHolder.mainLayout.setOnLongClickListener(new View.OnLongClickListener() { 
       @Override 
       public boolean onLongClick(View view) { 
        if (onclickListerner != null) 
         onclickListerner.onLongClickListener("", position); 

        return true; 
       } 
      }); 

      transactionHolder.mainLayout.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        if (onclickListerner != null) 
         onclickListerner.onClickListener("enter", position); 
       } 
      }); 

私は

このような背景を使用しようと、言ったように
android:background="?attr/selectableItemBackground" 

しかし、私はいくつかのカスタム背景色、例えば$ f2f2f2を持っていました どうすればこの問題を解決できますか? ありがとう

答えて

1

drawablev21フォルダ内にリップル描画可能なものを作成する必要があります。

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:color="?android:colorControlHighlight" 
tools:targetApi="lollipop"> 

<item> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <solid android:color="@color/yourcustomcolor" /> 
     <stroke 
      android:width="@dimen/seperator_size" 
      android:color="@color/yourcustomcolor" /> 
     <corners android:radius="@dimen/rounded_radius" /> 
    </shape> 
</item> 

セレクタ描画可能として21次に低いためにその等価ドロウアブルを作成します。

関連する問題