我正在使用RecyclerView並使用只有一個textView的自定義行,在首次調用適配器時,textview在onBindViewHolder中正確設置,在第二次插入onBindViewHolder時調用成功,文本要設置也是可用的,但是當我在textview上設置文本時,它在回收站視圖上顯示一個空行。它會佔用文本的空間,但不顯示文本,同樣的事情發生在進一步插入,任何想法爲什麼會發生這種情況?RecyclerView不顯示第二個插入的項目
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();
}
}
在日誌中onBindViewHolder顯示每插入正確的結果,但只是不設置從第二插入文本。
在這張圖片中,你好,你是我發送的第一條消息之後,我發了很多三條消息,因此第一條消息下面的空白。
分享您的代碼,其中包含代碼來填充和更新數組''RecyclerView' – Beena
設置'recyclerView'上方'EditText' .. – Sanoop
在佈局XML文件在recyclerview android:layout_height - 你有wrap_content,或match_parent。如果wrap_content,那麼這是問題 –