如何解决如何通过数据绑定设置按钮可点击性
通过使用以下方法设置绑定适配器,我可以轻松地通过数据绑定设置进度条的可见性:
在视图模型中:
@BindingAdapter("android:visibility")
fun setVisibility(view: View,visible: Boolean) {
view.visibility = if (visible) View.INVISIBLE else View.VISIBLE
}
@Bindable
var barProgress = ObservableField<Boolean>()
fun makeVisible(){
this.barProgress.set(true)
}
fun makeInvisible(){
this.barProgress.set(false)
}
在布局xml中:
android:visibility="@{!myViewModel.barProgress}"
我可以通过这种方式或其他方式以同样的方式分配 android:clickable
吗?如果我要更改代码,问题在于没有适合此方法的 View 属性。尝试在 main 方法上使用 setEnabled() 或 setClickable() 不是一种选择,因为我使用的是协程,我认为它与此冲突。
解决方法
我想我使它工作如下:
<div class="bod-modal">
<t t-if="QRimage">
<a t-att-href="'data:image/jpg;base64,'+ QRimage" title="Description 2">
<img t-att-src="'data:image/jpg;base64,'+ QRimage"/>
</a>
</t>
</div>
在 XML 中:
@BindingAdapter("android:clickable")
fun setClickable(view: View,clickable: Boolean) {
view.isClickable = !clickable
}
@Bindable
var clickable = ObservableField<Boolean>()
fun makeClickable(){
this.clickable.set(true)
}
fun makeUnclickable(){
this.clickable.set(false)
}
奖励,设置 android:clickable="@{myViewModel.clickable}"
属性:
enabled
并在 xml 中:
@BindingAdapter("android:enabled")
fun setEnabled(view: View,enabled: Boolean) {
view.isEnabled = !enabled
}
@Bindable
var enabled = ObservableField<Boolean>()
fun makeEnabled(){
this.enabled.set(true)
}
fun makeDisabled(){
this.enabled.set(false)
}
我想您可以猜出如何为 android:enabled="@{myViewModel.enabled}"
属性执行此操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。