安卓:显示前具有条件延迟的可见性



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

当它返回 false 时,它将首先显示此视图,然后在一段时间内它变为消失。

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

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

所以我使用代码跟随,首先,编写一个助手。

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

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

<View
    ...other attrs...
    app:attr="@{obj}" />

注意:

注释中的"Attr"必须与 XML 文件中使用的"Attr"相同。

静态方法中的视图必须与 XML 中的视图文件相同。

我的 Gradle 版本和数据活页夹版本

dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    classpath "com.android.databinding:dataBinder:1.+"
}

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

或者提供您的活动代码。

最新更新