上一篇介绍了数据绑定使用ViewModel的例子,本篇将简单说一个使用双向绑定实现界面刷新的例子。
如上是使用双向绑定实现的一个简单的界面显示功能,此界面中实现的功能有:
显示Work进程处理进度,设置Work进程处理时长;
显示Rest进程处理进度,设置Reset进程处理时长;
设置进程循环次数;
启动、暂停、停止进程运行,界面恢复。
DataBinding的双向绑定到底是什么呢?
通过Google官方的介绍,传统的绑定方式如下:
<CheckBox
android:id="@+id/rememberMeCheckBox"
android:checked="@{berMe}"
android:onCheckedChanged="@{berMeChanged}"
/>
UI需要指定状态变化通知到代码的值,并且增加针对该属性值变更时的监听器。
引入双向绑定之后,精简如下:
<CheckBox
android:id="@+id/rememberMeCheckBox"
android:checked="@={berMe}"
/>
UI和代码数据的获取、变更通知等操作由checked值的设置方法统一管理,在checked值发生变化时,需要代码同步做变更处理,去掉了checkedChanged监听器的注册逻辑,实现了接收对该属性的数据更改并同时侦听用户更新的功能。
双向绑定中,使用@InverseBindingAdapter和@BindingAdapter注解配合完成功能实现,其中InverseBindingAdapter为代码用来从UI上获取值,BindingAdapter为代码往UI设置值。
通过双向调用的实现,对于UI层与代码层数据的获取和变更处理都变得非常方便,有关双向数据调用的详细使用方法,可参考Google官方说明文档,此处不再赘述,可参考如下双向绑定DEMO进行开发。
附双向绑定DEMO地址:
这里有更多科技咨询,新技术学习,关注我们,和我们一起成长!
本文发布于:2024-01-29 04:26:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647356912685.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |