繁体   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