android – Preference的onCreateView和onBindView方法的区别

在Preference中的onCreateView和onBindView方法有什么区别?

在文档中,它表示onBindView:

Binds the created View to the data for this Preference. This is a
good place to grab references to custom Views in the layout and set
properties on them.

为什么在布局中设置Views的属性是一个好的地方?目前我正在设置onCreateView方法的属性,一切似乎都可以正常工作.
从我的经验来看,这两种方法总是一起调用.也许有一些情况下只有onBindView被调用?

解决方法

onCreateView()用于创建最终将包含“首选项”UI的“视图”层次结构. onBindView()用于将实际数据绑定到在onCreateView()中创建的View层次结构.

该模式将View层次结构(即缓存)的创建从数据绑定到该层次结构.在Preference的情况下,onCreateView()只被调用一次,而每次UI需要加载Preference View时调用onBindView().

我猜你当前的设置是有效的,因为你永远不会改变你在首选项上设置的属性.最好在onBindView()中设置View层次结构的属性,以防它需要是动态的.

(除此之外,这个视图创建与绑定设计模式也在CursorAdapters中看到,它只创建足够的视图来显示屏幕,但是这些视图不断地绑定到新的数据.)

相关文章

ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ...
使用Flutter自带的SearchDelegate组件实现搜索界面,通过魔改...
上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请...
安卓开发——WebView+Recyclerview文章详情页,解决高度...
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...