Android DataBinding меняет шрифт другого представления по клику - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть панель фильтров, которая показывает отдельный TextView для каждой буквы («A», «B», «C» ...).Я хочу достичь этого, когда я нажимаю на TextView с A, он становится жирным, и все другие TextViews должны вернуться к обычному стилю шрифта.Если я затем нажму C, A (и все остальные) TextViews должны отображаться нормально, а "C" - жирным шрифтом.
Есть ли эффективный способ сделать это с помощью привязки данных?Я хочу избежать написания LiveData-свойства для каждого из текстовых полей.

1 Ответ

0 голосов
/ 27 сентября 2018

Просто создайте ObservableField<> с selectedId или selectedText представления внутри вашей viewModel, также добавьте метод внутри viewModel changeSelectedValue и передайте ему представление напрямую из xml onClick.

Далее вам нужно будет создать собственный адаптер привязки, который примет ваш ObservableField<> с selectedId или selectedText и проверит, является ли значение одинаковым для него самого.

Так что все можно сделать с привязкой данных.Вам нужны примеры кода?

...