2016-06-28 14 views
0

RecyclerViewを使用していて、最初の呼び出し時にtextViewが1つしかないカスタム行を使用している場合、textViewはonBindViewHolderで正しく設定され、設定することもできますが、textviewでsetTextを実行すると、recyclerviewに空白行が表示されます。それはテキストのスペースを取るが、テキストを表示しません、同じ事はそれ以上の挿入で起こります、なぜこれが起こっているのでしょうか?RecyclerViewに2番目に挿入された項目が表示されない

public class MessagesAdapter extends RecyclerView.Adapter<MessagesAdapter.ViewHolder> { 
private ArrayList<MessagesData> mDataset; 
private Context context; 
public MessagesAdapter(Context context, ArrayList<MessagesData> myDataset) { 
    this.mDataset=myDataset; 
    this.context=context; 
} 

public class ViewHolder extends RecyclerView.ViewHolder { 
    // each data item is just a string in this case 
    public TextView textViewMsg; 
    public TextView textViewDay; 
    public TextView textViewTime; 

    public ViewHolder(View view) { 
     super(view); 
     textViewMsg = (TextView) view.findViewById(R.id.mes); 
    } 
} 


// Create new views (invoked by the layout manager) 
@Override 
public MessagesAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, 
                int viewType) { 
    // create a new view 
    View v = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.mesage, parent, false); 
    // set the view's size, margins, paddings and layout parameters 

    ViewHolder vh = new ViewHolder(v); 
    return vh; 
} 

// Replace the contents of a view (invoked by the layout manager) 
@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    Log.d("here",mDataset.get(position).getMessage()); 
    holder.textViewMsg.setText(mDataset.get(position).getMessage()); 

} 

// Return the size of your dataset (invoked by the layout manager) 
@Override 
public int getItemCount() { 
    return mDataset.size(); 

} 
} 

ログインすると、それぞれの挿入時に正しい結果が表示されますが、2番目の挿入からのテキストは設定されません。

こんにちは、私は最初のメッセージの下に空白スペースがたくさんあるので、最初に送信したメッセージはどのようでしたか?

In this Image ,Hi how are you was the first message I sent, after that I sent three messages hence the blank space below the first message

+0

'RecyclerView' – Beena

+0

の配列を記入し、更新するためのコードが含まれているあなたのコードを共有しrecyclerviewアンドロイド内のレイアウトxmlファイルで – Sanoop

+0

.. EditText''上記 'recyclerView'を設定します。layout_height - あなたはwrap_content、またはmatch_parentを持っています。 wrap_contentの場合、これは問題 –

答えて

0

@sanoopがコメントで言ったように、申し訳ありませんが、私はすべてのメッセージをスクロールする必要がありました。

0

RecyclerViewに新しい項目を挿入した後、あなたのアダプタにnotifyDataSetChanged()を使用してみてください。

+0

です。これも試しましたが、mAdapter.notifyItemInserted(myDataset.size() - 1)も試しました。同じ結果。 –

+1

** onBindViewHolder()**の** Log **ステートメントによって記録された2番目のメッセージが表示されますか? –

+0

onBindViewHolderのログが実行されています。つまり、アダプタが呼び出されています。 –

関連する問題