Могу ли я <включить>, только если условие выполнено с помощью DataBinding в Android?

У меня есть макет, который имеет <include> тег в нем. app:content передает объект устройства ViewModel используется в layout/item_device, Вся эта настройка работает отлично, кроме случаев, когда content.device нулевой.

<include
    android:id="@+id/device"
    layout="@layout/item_device"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="@{content.device != null ? View.VISIBLE : View.GONE}"
    app:content="@{content.device}" />

DeviceViewModel используется в layout/item_device как показано ниже id значение присваивается во время строительства, затем ссылка для просмотра. id это что-то вроде R.id.device объявлено в values/ids

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:id="@{device.id}">

У меня сейчас проблема в том, content.device ноль, он все еще будет пытаться найти его id, Есть ли способ иметь <include> тег не работает, если device нулевой? предпочитаю что-то вроде связывания данных, например android:visibility="@{content.device != null ? View.VISIBLE : View.GONE}"

или лучше предложение, пожалуйста

0 ответов

Другие вопросы по тегам