Связывание данных. Как написать многострочные объявления?

Есть ли способ написать многострочный код с библиотекой DataBinding?

Я пробовал следовать, но он жалуется на формат XML

android:text="@{
            viewModel.subscriptionExpiration == null
                ? viewModel.field1
                : viewModel.field2
        }"

Со следующей ошибкой: Error:(80) Error parsing XML: not well-formed (invalid token)

Однострочные альтернативные работы, но я считаю это менее читаемым:

android:text="@{viewModel.subscriptionExpiration == null ? viewModel.field1 : viewModel.field2}"

Ответ 1

Я пробовал делать рытье и не мог найти ответ. Я не знаю, что вы можете разбить струнные литералы таким образом в xml. В качестве альтернативы я бы рекомендовал вместо этого разгрузить оценку viewModel в виде:

android:text="@{viewModel.subscriptionStatus}"

то в вашем представлении класс модели

@Bindable
public String getSubscriptionStatus(){
    return getSubscriptionExpiration() == null
            ? getField1()
            : getField2();
}