我有两个布局XML文件, A 和 B
A XML文件中有一个id为'layout'的LinearLayout
现在我想使用layout.addView()
将B添加到布局中
如何使用databinding
实现这个功能呢?
我有两个布局XML文件, A 和 B
A XML文件中有一个id为'layout'的LinearLayout
现在我想使用layout.addView()
将B添加到布局中
如何使用databinding
实现这个功能呢?
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
bind:createView="@{viewModel.dynamicViews}">
在我的viewModel
类中,我有一个带有BindingAdapter
注解的静态方法。
@BindingAdapter("bind:createView")
public static void createImproveView(FrameLayout layout, LinearLayout replacement) {
layout.removeAllViews();
layout.addView(replacement);
}
我已经有了我的替代布局:
public LinearLayout getDynamicViews() {
LinearLayout layout = new LinearLayout(mContext);
// dynamically add views here. This could be your layout B.
return layout;
}
我找不到其他解决方案,这个对我来说很好用。请给我任何意见,我愿意学习更好的解决方案!
addView(databinding.getRoot())
你可以看到getRoot()
返回一个View
实例,因此你可以使用这种方法addView
。
这个databinding是你想要添加的视图的databinding实例。
<include layout="@layout/header_logo_lyt" //Name of xml you want to include/>