databinding通过inflate动态添加view

在MVC中可以通过addView来动态的添加view,那么mvvm通过databinding动态添加view也可以。

DataBindingUtil中提供了setContentView和inflate两个方法,setContentView是直接用来添加布局的,和mvc中的setContentView的实现同样的功能,那么动态添加view就是通过inflate方法来实现的了。

这里使用的是四个参数的inflate方法,第一个是layoutInflater,第二个是布局,第三个是viewGroup就是要在哪个layout中添加布局,第四个false。

在使用此方法时要注意添加databindind的泛型,此泛型是动态布局的databinding。示例如下:

 val demoBinding:ActivityDemoBinding = DataBindingUtil.inflate<ActivityDemoBinding>(
            LayoutInflater.from(mActivity.applicationContext),
            R.layout.activity_demo, container, true)
            
//通过demoBinding就可以获取activity_demo中组件的id了

感谢:android动态添加布局(基于mvvm和databinding)

猜你喜欢

转载自blog.csdn.net/xiaopihair123/article/details/128531783
今日推荐