Jetpack-- DataBinding结合ViewModel和LiveData使用

简介

  • DataBinding 用来将数据绑定在UI页面上,实现试图和数据的双向绑定,主要是体现数据驱动开发,具体含义是在得到数据后,通过框架在视图树中找到与数据绑定的视图

使用

  • 在build.gradle中添加
android {
        ....
    defaultConfig {
        ...
        dataBinding {
            enabled = true
        }
}
  • xml中实现双向绑定




    
        
    


    


        
  • acticity中使用DataBinding
class MainActivity : AppCompatActivity() {
    private lateinit var mViewModel: MyViewModel
    private lateinit var activityMainBinding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 将视图绑定
        activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        // vm和控制器绑定
        mViewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
        // 取回数据, this LifeCycleOwner
        activityMainBinding.setWjx(mViewModel)
        // 进行数据观察
        activityMainBinding.setLifecycleOwner(this)
    }
}

你可能感兴趣的