android:显示前条件延迟的可见性

Hao*_* Xu 5 data-binding android

我正在尝试使用 android 数据绑定。但是当我使用android:visibility条件时遇到了一些问题。喜欢android:visibility="size == 0 ? View.GONE : View.VISIBLE”。

当它返回 false 时,它​​会先显示这个视图,然后一会儿就消失了。

我可以解决这个问题吗?或者这是数据的错误?

gra*_*ang 0

我曾经尝试过这样的代码 android:visibility="@{size==0?View.GONE:View.VISIBLE}",但它无法编译。我不知道为什么,也许这是一个错误。

所以我使用以下代码代替,首先编写一个 Helper。

public class Helper {
    @BindAdapter("bind:attr")
    public static void setAttr(View view, Object obj) {
        if (someCondition(obj)){
            view.doSomething();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

其次,在xml文件中使用自定义attr

<View
    ...other attrs...
    app:attr="@{obj}" />
Run Code Online (Sandbox Code Playgroud)

笔记:

注释中的“attr”必须与 xml 文件中使用的“attr”相同。

静态方法中的View必须与xml文件中的View相同。

我的 Gradle 版本和 dataBinder 版本

dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    classpath "com.android.databinding:dataBinder:1.+"
}
Run Code Online (Sandbox Code Playgroud)

并且,删除与此视图无关的其他操作。

或者提供您的活动代码。