美文网首页
Android-JetPack(三) DataBinding

Android-JetPack(三) DataBinding

作者: 陆笪_刑道荣 | 来源:发表于2021-05-11 09:12 被阅读0次
    • 简介

    介绍 :
    DataBinding 是以声明的方式,将布局中组件与应用程序源数据绑定在一起的框架库。
    作用:
    1.将布局组件与源数据绑定,使源数据变化的同时布局组件及时同步更新。
    2.减少Activity中View的定义(private View view)与初始化(findViewById),让Activity代码更专注于界面的逻辑更新。
    3.可自定义适配器,实现扩展组件的属性功能。
    4.可自定义事件,实现各种组件的事件触发功能。
    特点:
    1.使用简单,主要以声明的方式实现。
    2.功能强大,可自定义适配器 & 事件 ,兼容各种界面逻辑需求。

    • 添加DataBinding

    工程build.gradle


    • xml中使用

    在xml中,光标移到父布局,Alt+Enter快捷键添加DataBinding



    工具会自动生成data标签,里面的name自己取就行,type是和ViewModel对应来控制数据

    • Activity中使用

    public class LoginActivity extends FragmentActivity {
        TestViewModel model;
        ActivityLoginBinding binding;  // binding名称和xml名称一致,自动生成
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            binding = DataBindingUtil.setContentView(this,R.layout.activity_login);
            model = new ViewModelProvider(this,new ViewModelProvider.NewInstanceFactory()).get(TestViewModel.class);
            binding.setData(model);
            model.setData("wwwww");
            binding.setLifecycleOwner(this);  //自我观察
        }
    }
    
    • 小结

    Activity简洁了好多,LiveData的观察和更新监听都省略了。这里是JetPack帮我们做了,相应的功能加到了bing中了。
    DataBinding实现了数据和页面的直接绑定。然后数据的控制直接在ViewModel中,这样就能在Activity中减少很多不必要的代码。

    相关文章

      网友评论

          本文标题:Android-JetPack(三) DataBinding

          本文链接:https://www.haomeiwen.com/subject/friudltx.html