2

Min SDKが21です。私のリサイクラーアダプターでカードビューをクリックすると、波紋効果は起きず、次の画面に進みます。 recyclerviewは断片の中にあります。Cardview波紋効果が働かない

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

    <android.support.v7.widget.CardView 
     android:id="@+id/entire_card" 
     android:layout_width="match_parent" 
     android:layout_height="265dp" 
     android:layout_margin="8dp" 
     android:foreground="?android:attr/selectableItemBackground" 
     app:cardUseCompatPadding="true" 
     app:cardCornerRadius="2dp" 
     > 


     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <ProgressBar 
       android:id="@+id/progressbar" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:layout_centerHorizontal="true" 
       android:paddingTop="120dp" 
       android:visibility="visible"/> 


      <ImageView 
       android:id="@+id/pet_image" 
       android:layout_width="match_parent" 
       android:layout_height="210dp" 
       android:layout_alignParentTop="true" 
       android:scaleType="centerCrop" 
       android:src="@drawable/placeholder" 
       android:visibility="gone" 
       /> 

      <TextView 
       android:id="@+id/pet_description" 
       android:layout_width="fill_parent" 
       android:layout_height="55dp" 
       android:layout_below="@+id/pet_image" 
       android:padding="10dp" 
       android:textColor="#FFFFFF" 
       android:visibility="gone" 
       android:textSize="20sp" 
       android:background="@color/primaryColour" 
       /> 

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

</LinearLayout> 

各項目にonClickがあるアダプタコード。

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
     public TextView petInfo; 
     public ImageView imgURL; 
     public ProgressBar progressBar; 

     private Context itemContext; 
     public ViewHolder(View v){ 
      super(v); 
      imgURL = (ImageView) v.findViewById(R.id.pet_image); 
      petInfo = (TextView) v.findViewById(R.id.pet_description); 
      progressBar = (ProgressBar) v.findViewById(R.id.progressbar); 

      itemContext = v.getContext(); 

      v.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View v){ 

      Intent intent= new Intent(itemContext, DetailCardLayout.class); 
      Integer position = getAdapterPosition(); 
      intent.putExtra("CARDVIEW_POSITION", position); 
      v.getContext().startActivity(intent); 

     } 
    } 
+0

ルートレイアウトとしてCardViewを設定し、試してみてください。 –

+0

それは助ける!ただし、リップル効果は2回のクリックに対してのみ有効です。すなわち、カードビューをクリックし、次の画面に進み、戻るを押す。繰り返す。あなたが3回目をクリックすると、それ以上の波及効果はありません – DessertsAndStuff

答えて

1

のフォアグラウンド属性とFrameLayoutであなたのイメージをラッピングしてみ

+0

それは助けているようです。しかし、もっと見るためにスクロールすると(2枚のカードが画面を占める)波紋効果は最初の2枚のカードの後では機能しないようです。 – DessertsAndStuff

0

あなたのカードビューのXMLに

android:clickable="true" 

を追加しよう: 例えばandroid:foreground="?attr/selectableItemBackground"

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:focusable="true" 
     android:foreground="?attr/selectableItemBackground" 
     > 

     <ImageView 
      android:id="@+id/pet_image" 
      android:layout_width="match_parent" 
      android:layout_height="210dp" 
      android:layout_alignParentTop="true" 
      android:scaleType="centerCrop" 
      android:src="@drawable/placeholder" 
      android:visibility="gone" 
      /> 

    </FrameLayout> 
0

カードビューにはカードビューサーフェスをカバーする相対レイアウトが含まれているため、相対レイアウトに波及効果を書き込むことができます。

<android.support.v7.widget.CardView 
    android:id="@+id/cardView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:cardPreventCornerOverlap="false" 
    app:cardElevation="2dp" 
    app:cardUseCompatPadding="false" 
    app:cardCornerRadius="2dp" 
    android:layout_marginBottom="8dp" 
    android:layout_marginRight="8dp" 
    android:layout_marginLeft="8dp" 
    > 
    <RelativeLayout 
     android:id="@+id/rl_bookmark" 
     android:background="?attr/selectableItemBackground" 
     android:clickable="true" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> ... 
関連する問題