我拥有一个自定义listview, 每个条目都包含旋转的ProgressBar和单行文本视图。我总是仅更新列表中的第一项。问题在于,每次调用notifyDataSetChanged时,所有可见的视图都会被重新创建或作为convertView回收。
这种方法存在两个问题:
- 所有条目都被重新创建,而这很慢 - 而且我只更新第一个条目中的文本视图,这并不需要。 - 每次都会重新启动ProgressBar动画。
所以我想只保留第一个View的引用,并手动更新它。这个方法是有效的,但是它会随机抛出IllegalStateException(“适配器的内容已更改,但ListView没有收到通知。请确保您的适配器内容不是从后台线程修改的,而是只能从UI线程修改。”)
该如何解决这个问题?是否有一种方法可以通知ListView只有第一个条目发生了变化?即使有,ProgressBar动画仍将失败。是否有其他方式可以手动更新它?
谢谢。
这种方法存在两个问题:
- 所有条目都被重新创建,而这很慢 - 而且我只更新第一个条目中的文本视图,这并不需要。 - 每次都会重新启动ProgressBar动画。
所以我想只保留第一个View的引用,并手动更新它。这个方法是有效的,但是它会随机抛出IllegalStateException(“适配器的内容已更改,但ListView没有收到通知。请确保您的适配器内容不是从后台线程修改的,而是只能从UI线程修改。”)
该如何解决这个问题?是否有一种方法可以通知ListView只有第一个条目发生了变化?即使有,ProgressBar动画仍将失败。是否有其他方式可以手动更新它?
谢谢。