如何彻底更改 recyclerview 中的 item 布局中的某个控件的某个属性

2016-08-26 01:10:41 +08:00
 Cybertron

标题绕口,见谅。 当外部事件触发后,怎样彻底更改 recyclerview 的 itemview 中的某个控件的某个属性?比如 itemview 中的 edittext ,当外部事件触发后,彻底更改 edittext 的背景。

目前我的做法是使用 adapter.notifyItemRangeChanged ,然后调用 adapter 内定义的静态方法,设置标志变量为 true ,我在 onCreateViewHolder 中根据标志变量更改 edittext 的背景。

这种做法有些 bug ,各位有没有更好的方法?

9327 次点击
所在节点    Android
6 条回复
ljbha007
2016-08-26 01:41:26 +08:00
1.获取该 View 的引用
2.更改属性
3.notifyItemChanged

zhaohui318
2016-08-26 07:55:12 +08:00
怎样叫彻底,需不需要持久化
kitalphaj
2016-08-26 08:10:56 +08:00
把这个属性放在 Model 里吧。如果你觉得是 UI 属性不属于 Model 那最好的方法就是创建一个中间的 ViewModel 来封装一下咯。如果非要强行变化 UI 属性,就用 1 楼说的方法吧。
ffts
2016-08-26 09:00:16 +08:00
改东西要在 onBindViewHolder 里改吧, create 又不是每次都调用
F1ReKing
2016-08-26 14:17:39 +08:00
应该把属性放在 Model ,然后去更改它并 notifyItemChanged
Cybertron
2016-08-26 21:30:30 +08:00
感谢大家的回复,准备封装进 model 里重新做下,之前正式按照 1 楼的做法实现的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/301820

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX