android – notifyItemInserted()在零索引处插入第一个项目时不起作用

android – notifyItemInserted()在零索引处插入第一个项目时不起作用,第1张

概述我试图在第一个位置的回收者视图中插入一个项目,即0索引如下 try { commentList.add(new Comment( Preferences.getProfileImageUrl(), "", Preferences.g 我试图在第一个位置的回收者视图中插入一个项目,即0索引如下
try {       commentList.add(new Comment(          Preferences.getProfileImageUrl(),"",Preferences.getUsername(DONApplication.getInstance()),String.valueOf(Preferences.getUserID(DONApplication.getInstance())),response.getString("comment_ID"),commentText       ));       commentAdapter.notifyItemInserted(commentList.size() - 1);                                           } catch (Exception e) {         e.printstacktrace();                           }

但它根本没有显示,但当我关闭窗口并再次打开它时,它变得可见.我不知道为什么会这样.有人能帮我吗?

解决方法 经过几个小时 – 这就是我发现的.
项目0已添加到列表中,屏幕已显示之前为0-9的项目,现在显示项目1-10.

您需要以编程方式滚动到位置0,以便查看新添加的项目.

我用了

public voID onAttachedToRecyclerVIEw(RecyclerVIEw recyclerVIEw) {    this.recyclerVIEw = recyclerVIEw;    super.onAttachedToRecyclerVIEw(recyclerVIEw);}

获取对连接到适配器的recyclerVIEw的引用(在我的情况下,我知道只有一个可能的recyclelerVIEw,javadoc声明可能有多个)

在位置0添加项目后,我检查了第一个可见项目是否为0(如果用户已经向下滚动,我不想滚动)

private voID restoreScrollpositionAfteradAdded() {    linearlayoutmanager layoutManager = (linearlayoutmanager) recyclerVIEw.getLayoutManager();    if (layoutManager != null) {        int firstVisibleItemposition = layoutManager.findFirstVisibleItemposition();        if (firstVisibleItemposition == 0){            layoutManager.scrollToposition(0);        }    }}
总结

以上是内存溢出为你收集整理的android – notifyItemInserted()在零索引处插入第一个项目时不起作用全部内容,希望文章能够帮你解决android – notifyItemInserted()在零索引处插入第一个项目时不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1135469.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存