2016-06-07 10 views
0

Ich habe also ein CardView, in dem sich ein RecyclerView befindet, und ich habe einen OnClickListener auf das CardView gesetzt. Das Problem ist, dass ich in der Lage sein möchte, irgendwo in die CardView zu klicken, aber ich kann es nicht in der RecyclerView klicken. Ich kann nur auf den Teil der CardView klicken, der nicht Teil der RecyclerView ist. Wie behebe ich das?Der Klick-Listener von CardView wird ausgelöst, wenn ein RecyclerView darauf geklickt wird

Danke.

<android.support.v7.widget.CardView 
     android:id="@+id/phone_card" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" 
     android:foreground="?android:attr/selectableItemBackground"> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="16dp"> 

      <TextView 
       android:id="@+id/phone_card_title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/phone_numbers" 
       android:textAppearance="@style/TextAppearance.AppCompat.Caption" /> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/phone_card_recycler_view" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/phone_card_title"> 

      </android.support.v7.widget.RecyclerView> 

     </RelativeLayout> 

    </android.support.v7.widget.CardView> 
+0

Sie haben 'setOnClickListner' in ViewHolder Ansicht in recycle Ansicht Adapter erstellt implment –

+0

@BurhanuddinRashid Es ist Ich möchte auf die CardView klicken, nicht auf den ViewHolder. danke für die Antwort btw – Francisco

+0

Versuchen Sie, Kartenansicht in lineare, relative oder Frame-Layout und 'setOnClickListner' auf Cardview übergeordneten Layout setzen –

Antwort

0

In Ihrem Recycler adapater initialisieren cardview und setonClicklistener es

Beispiel Viewholder:

public class ViewHolder extends RecyclerView.ViewHolder { 
    public final CardView cardView ; 

    public ViewHolder(View view) { 
     super(view); 
     cardView = (CardView) view.findViewById(R.id.carView); 
    } 
} 


@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.list_item, parent, false); 
    return new ViewHolder(view); 
} 


@Override 
public void onBindViewHolder(final ViewHolder holder, final int position) { 
holder.cardView.setOnClickLister(new View.OnClickListener(){ 
    @Override 
     public void onClick(View view) { 
     //your logic here 
     } 
    }); 
} 
Verwandte Themen