Как использовать привязку данных для пользовательских атрибутов в Android, если формат атрибута «справочный»? - PullRequest
0 голосов
/ 27 мая 2019

У меня есть пользовательский атрибут, определенный следующим образом:

<declare-styleable name="CustomView">
 <attr name="customimage" format="reference"/>
</declare-styleable>

Атрибут должен быть ссылкой на чертеж.Это работает нормально, если я делаю это:

app:customimage="@drawable/customimagename"

Но я пытаюсь использовать привязку данных Android для динамической установки изображения.И я не могу установить этот атрибут с полем из моей модели представления.

Вот что я пробовал до сих пор, где viewmodel.imageResourceId - это целое число идентификатора ресурса для отрисовки:

app:customimage="@{viewmodel.imageResourceId}"
app:customimage="@{ContextCompat.getColor(context, viewmodel.imageResourceId)}"

Я также попытался передать его в рисование, где viewmodel.imageDrawable - это фактическое рисование:

app:customimage="@{viewmodel.imageDrawable}"

Я также попытался создать BindingAdapter для установки значения.Но ничего из этого даже не компилируется.Так как же передать ссылку на рисование в пользовательский атрибут с помощью привязки данных?

...