Выражение макета - троичная операция для отображаемого значения - PullRequest
0 голосов
/ 16 мая 2019

vm имеет значение isWin, которое может иметь только 0 или 1.

Я бы хотел воспользоваться Data Binding для этого.

Я получаю доступ к vm в <data>, и я подключился так:

@{vm.isWin == 1 ? @drawable/win_true : @drawable/win_false}

Однако, похоже, это не работает.

Я получаю это с красным подчеркиванием:

'!=', '%', '==', '(', ..., '>=', '>>' or '>>>' expected, got ':'

Это - ссылка Google.

полный activity_main.xml это:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="vm"
            type="io.monolabs.asscnfc.vm.ResultViewModel" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src = "@{vm.isWin == 1 ? @drawable/win_true : @drawable/win_false}"/>
    </LinearLayout>
</layout>

1 Ответ

2 голосов
/ 16 мая 2019

Я тоже сталкивался с этой проблемой.решается удалением ключевого слова is из переменной name.javabeans, пытающегося сгенерировать одно и то же имя getter и setter.«Is» предшествует только имени метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...