Jay*_*ren 17 xml user-interface android imagebutton
我有一个如下定义的图像按钮.
<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" />
Run Code Online (Sandbox Code Playgroud)
我想设置要选择的按钮的默认状态.所以在代码中我会说:
playBtn.setSelected(true);
是否可以在xml中执行此操作?
该问题的更新解决方案是使用DataBinding
.
@BindingAdapter
(在代码中的某处):@BindingAdapter("is_selected")
fun setSelected(view: View, selected: Boolean) {
view.isSelected = selected
}
Run Code Online (Sandbox Code Playgroud)
DataBinding
您的xml
@BindingAdapter("is_selected")
fun setSelected(view: View, selected: Boolean) {
view.isSelected = selected
}
Run Code Online (Sandbox Code Playgroud)
重要提示:请记住,您需要在DataBinding
此处使用。所以你不能简单地调用 add is_selected="true"
(因为它不会告诉你它会失败),你需要添加is_selected="@{true}"
小智 5
无需创建 BindingAdapter 方法,只需启用DataBidning
并键入:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<ImageButton
android:id="@+id/player_ctrl_btn"
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"
app:selected="@{true}" />
</layout>
Run Code Online (Sandbox Code Playgroud)