通过DataBinding动态包含视图

时间:2019-05-23 05:23:19

标签: android mvvm layout data-binding layout-inflater

我正在使用带有DataBinding支持的MVVM设计模式。我在我的应用程序中有一个用于多个屏幕的通用列表项视图,但是在其中一个列表中,该列表项视图中需要一个小的附加视图。因此,我想动态地包含或膨胀该subView。就像如果在ViewModel中设置了一个字段,则将那个视图膨胀,否则就不膨胀。    我想到的一种便宜的解决方案是始终包含该视图,但根据需要显示或隐藏。但我不想在最后一个选择之前继续选择它。

以下为部分代码:

       @BindingAdapter("boxPrivacyTag")
        public static void bindBoxPrivacyTag(final ConstraintLayout parentView, String privacyStatus) {
            if (!TextUtils.isEmpty(privacyStatus)) {
                Context context = parentView.getContext();
                LayoutInflater inflater = LayoutInflater.from(context);
                LayoutBoxPrivacyStatusBinding binding = DataBindingUtil.inflate(inflater, R.layout.layout_box_privacy_status, parentView, false);
                parentView.addView(binding.getRoot());

                binding.tvPrivacy.setText(privacyStatus);
              }
        }

谢谢

0 个答案:

没有答案