1

私はRecyclerViewでCarViewsを使用していますが、ロード時にうまく見えますが、リストがスクロールされるとCardViews間のギャップが大きくなり、一度に1つのカードしか表示されません。リストは enter image description hereスクロール時にCardViews間のギャップが増える

をスクロールされる前に、

ここに私のCardView.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/conversationCard" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="16dp"> 

      <TextView 
       android:id="@+id/sender" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView 
       android:id="@+id/abstractConvo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="35dp"/> 

     </RelativeLayout> 

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

</LinearLayout> 

、ここでは、私はここで、そのビューに

public class ConversationsListAdapter extends RecyclerView.Adapter<ConversationsListAdapter.ConversationsListViewHolder> { 

    List<Conversation> conversationList; 

    public ConversationsListAdapter(List<Conversation> conversationList) { 
     this.conversationList = conversationList; 
    } 

    @Override 
    public int getItemCount() { 
     return conversationList.size(); 
    } 

    @Override 
    public ConversationsListViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { 
     View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.conversation_card, viewGroup, false); 
     ConversationsListViewHolder listViewHolder = new ConversationsListViewHolder(view); 
     return listViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ConversationsListViewHolder holder, int position) { 
     holder.sender.setText(conversationList.get(position).getSenderPhNo()); 
     holder.abstractConvo.setText(conversationList.get(position).getAbstractConvo()); 
    } 

    public static class ConversationsListViewHolder extends RecyclerView.ViewHolder { 
     CardView cv; 
     TextView abstractConvo, sender; 

     public ConversationsListViewHolder(View itemView) { 
      super(itemView); 
      cv = (CardView) itemView.findViewById(R.id.conversationCard); 
      sender = (TextView) itemView.findViewById(R.id.sender); 
      abstractConvo = (TextView) itemView.findViewById(R.id.abstractConvo); 
     } 
    } 
} 

を使用している方法ですされたスクリーンショットで、スクロール後に enter image description here

ありがとうございます。

答えて

5

ルートレイアウト使用wrap_content

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
+0

これが働いていました。ありがとうございました。 –

関連する問題