Jetpack系列:数据绑定~双向绑定

阅读: 评论:0

Jetpack系列:数据绑定~双向绑定

Jetpack系列:数据绑定~双向绑定

 

上一篇介绍了数据绑定使用ViewModel的例子,本篇将简单说一个使用双向绑定实现界面刷新的例子。


 

如上是使用双向绑定实现的一个简单的界面显示功能,此界面中实现的功能有:

 

  1. 显示Work进程处理进度,设置Work进程处理时长;

  2. 显示Rest进程处理进度,设置Reset进程处理时长;

  3. 设置进程循环次数;

  4. 启动、暂停、停止进程运行,界面恢复。

 

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小时内删除。

标签:绑定   双向   系列   数据   Jetpack
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23