2017-05-15 2 views
0

私はLinearLayoutにネストされたRecyclerViewの項目リストを表示しています。 RecyclerView(アイテムまたは背景の白い部分のいずれか)がクリックされたときにポップアップを開こうとしていますが、通常はsetOnClickListenerが機能しません。Recyclerviewはクリックできません

もちろん、アイテムごとにクリックリスナーを置くことはできますが、その間の白い部分はクリック不可能なままです。

RecyclerViewエリア全体をクリック可能にする方法はありますか?

EDIT:サンプルコードを追加しました。ポップアップを開くためにレイアウト全体をクリック可能にしたいのですが、最初の3つのビューが正しく動作している間は、RecyclerViewは動作しません。

<LinearLayout 
    android:id="@+id/layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/spacing_half" 
     android:background="@color/color_item_margin_divider"/> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/fragment_tags_title" 
     style="@style/ItemFragmentHeader"/> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/spacing_line" 
     android:background="@color/color_line_divider"/> 
    <RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/spacing_half"/> 
</LinearLayout> 
+0

申し訳ありませんが、しかし...? – Alessandro

+0

コードを投稿する必要があります。また、クリックイベントをキャプチャする可能性があるため、親ビューを確認してください。 'android:clickable =" true "'を親のXMLに追加することでそれを無効にすることができます。 – C0D3LIC1OU5

+0

いくつかのコードを投稿してください。 –

答えて

0

viewHolderonClickListenerを追加します。以下は、このリンクが助け場合、私はListener

public class MyViewHolder extends RecyclerView.ViewHolder { 
     public ImageView shotThumbnail; 
     public MyViewHolder(View view) { 
        super(view); 
        shotThumbnail = (ImageView) view.findViewById(R.id.shotThumbnail); 
        shotThumbnail.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          //Put here stuff that you want the onclickListener should do 

         } 
        }); 

チェックを実施していた私のプロジェクトの抜粋です:どのようにこれは私の質問を支援することができます Detect click on RecyclerView outside of items

+0

私が質問したところでは、RecyclerViewの全領域は、単一のアイテムだけでなく、マージンまでもクリック可能でなければなりません。 – Alessandro

+0

それをイメージし、クリック可能にする – Panda2109

+0

RecyclerViewが占める全領域:パディング+アイテム+マージン... – Alessandro

関連する問題