Я использую шаблон проектирования 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);
}
}
Спасибо