具有可见性的数据绑定引用了另一个ID

时间:2018-08-09 14:39:16

标签: android

我正在尝试使用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
        }
    }
}

编辑:

我本以为可以,但是因为没有内部绑定,所以无法使用。

相关者:

Cannot refer to other View ID in Android data binding

0 个答案:

没有答案