我有两个布局 xml A 和 B
中的线性布局 id 为“layout”的 xml
现在我想使用 layout.addView()
在布局中添加 B
我如何使用 databinding
做到这一点
最佳答案
我不认为这是最佳实践,但这是我使用 databinding
动态添加 View 的方法。
在布局 A
中,我有一个如下所示的 FrameLayout
:
<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;
}
我找不到任何其他解决方案,这对我来说很好用。请给我任何意见,我愿意学习更好的解决方案!
关于Android DataBinding 动态 addView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31446779/