Android-JetPack(三) DataBinding

2021-05-11  本文已影响0人  陆笪_刑道荣

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

工程build.gradle


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



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

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中减少很多不必要的代码。

上一篇下一篇

猜你喜欢

热点阅读