簡體   English   中英

添加新項目和notifyDataSetChanged后如何從RecyclerView獲取最后一個項目視圖?

[英]How to get last item view from RecyclerView after adding new item and notifyDataSetChanged?

將新項目添加到適配器和notifyDataSetChanged之后,無法獲取最后一個項目視圖。

在調用notifyDataSetChanged()之后要從RecyclerView獲取最后一個項目視圖時,獲取空項目視圖。

遵循一些獲取項目視圖對象但無法獲取確切視圖對象但大小和項目數正確的方案。

方案1:

mListItem.add("Hello Data");
mAdapter.notifyDataSetChanged();
mRecyclerView.scrollToPosition(mAdapter.getItemCount() - 1);
View itemView= mRecyclerView.getChildAt(mAdapter.getItemCount()-1);

以上itemView總是獲取空值。

方案2:

mListItem.add("Hello Data");
mAdapter.notifyDataSetChanged();
mRecyclerView.scrollToPosition(mAdapter.getItemCount() - 1);
int lastItemPosition = linearLayoutManager.findLastVisibleItemPosition();
View itemView= linearLayoutManager.findViewByPosition(lastItemPosition);

itemView上方給出倒數第二個項目視圖,但大小正確。

我無法理解為什么在回叫notifyDataSetChanged之后無法使用最后一個項目視圖。

請解釋!

謝謝!

請用這個

 mListItem.add("Hello Data"); mAdapter.notifyDataSetChanged(); mRecyclerView.scrollToPosition(mListItem.size() - 1); 

您應該使用列表大小

mListItem.size()而不是mAdapter.getItemCount()

無需調用此

View itemView= mRecyclerView.getChildAt(mAdapter.getItemCount()-1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM