首页 > 基础资料 博客日记
【Harmony OS】【JAVA UI】使用ListContainer与BaseItemProvider时,删除一行item,position没有更新
2023-07-24 16:51:44基础资料围观246次
本篇文章分享【Harmony OS】【JAVA UI】使用ListContainer与BaseItemProvider时,删除一行item,position没有更新,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
鸿蒙开发中,遇到不少小问题,今天,就来和大家分享一下我遇到的一个小问题吧,希望对大家有所帮助
【问题描述】
在做鸿蒙应用开发时,使用ListContainer与BaseItemProvider,当点击item中的组件,删除一行数据,并且调用刷新数据方法,报错了。
有使用getItemComponentType()方法使用多种item布局的方式,但是当我删除某一个item后,并且调用notifyDataChange方法刷新ListContainer,直接就报错说xxx组件空了。
那么如何正确使用ListContainer组件实现不同布局的复用,且在删除或插入数据之后调用getItemComponentType不会引起报错?
1、列表中第二行显示了一张图片,第三行显示的是三张图片;
2、删除List数据中对应第二行的数据,并且调用notifyDataChanged刷新列表;
3、原本的第二行被删除,第三行来到了第二行,但却变成了只显示一张图片,使用了一张图片的布局类型;
4、我猜测是因为布局复用出了问题,但却是根据官方推荐的写法来做的,这该如何解决呢?
【解决方案】
这个是由于是temp组件的复用导致的,可以定义一个Holder类来进行复用,可以参考官方示例代码中SettingHolder的使用:
文章来源:https://www.cnblogs.com/developer-huawei/p/16494436.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: