Как установить выбранное состояние кнопки изображения с помощью XML
-
19-09-2019 - |
Вопрос
У меня есть кнопка изображения, как определено ниже.
<ImageButton
android:text="Play"
android:src="@drawable/playpause"
android:background="@drawable/opaque"
android:gravity="center_horizontal"
android:id="@+id/player_ctrl_btn"
android:layout_width="fill_parent"
android:padding="0px"
android:layout_height="wrap_content" />
Я хочу установить состояние по умолчанию для выбранной кнопки.Итак, в коде я бы сказал:
playBtn.setSelected(true);
Можно ли это сделать в xml?
Решение
Не похоже, что вы сможете — извините!
Другие советы
Более новым решением проблемы было бы использование DataBinding
.
- Создать
@BindingAdapter
(где-то в вашем коде):
@BindingAdapter("is_selected")
fun setSelected(view: View, selected: Boolean) {
view.isSelected = selected
}
- Использовать
DataBinding
в вашейxml
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
</data>
<ImageButton
android:id="@+id/player_ctrl_btn"
is_selected="@{true}"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/opaque"
android:gravity="center_horizontal"
android:padding="0px"
android:src="@drawable/playpause"
android:text="Play" />
</layout>
ВАЖНЫЙ: помните, что вам нужно использовать DataBinding
здесь.Поэтому вы не можете просто вызвать add is_selected="true"
(поскольку не сообщать вам об этом не получится), вам нужно добавить is_selected="@{true}"
Не связан с StackOverflow