我正在尝试使用DataBinding更改引用另一个元素ID的元素的可见性,它在第一次(onCreate)起作用,但是如果可见性在运行时发生变化,则它不起作用。
<Button
android:id="@+id/buttonView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<Button
android:id="@+id/btnAnother"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:onClick="@{() -> presenter.buttonClicked()}"
android:visibility="@{buttonView.getVisibility() == View.GONE ? View.VISIBLE : View.GONE}" />
fun buttonClicked() {
activity.runOnUiThread {
val buttonView = activity.findViewById<ButtonView>(R.id.buttonView)
if (buttonView.visibility == View.VISIBLE) {
buttonView.visibility = View.GONE
} else {
buttonView.visibility = View.VISIBLE
}
}
}
编辑:
我本以为可以,但是因为没有内部绑定,所以无法使用。
相关者: