首页 > 基础资料 博客日记

【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://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-listcontainer-0000001060007847

 

image.png

image.png


文章来源:https://www.cnblogs.com/developer-huawei/p/16494436.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云