Включить представление динамически через DataBinding - PullRequest
0 голосов
/ 23 мая 2019

Я использую шаблон проектирования MVVM с поддержкой DataBinding. У меня есть общее представление элемента списка для нескольких экранов в моем приложении, но в одном из списков требуется небольшое дополнительное представление, требуемое в этом представлении элемента списка. Итак, я хочу включить или раздуть этот 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);
              }
        }

Спасибо

...