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

时间:2016-03-04 02:50:20

标签: android data-binding

我试图使用android数据绑定。但是当我使用android:visibility条件时,我遇到了一些问题。与android:visibility="size == 0 ? View.GONE : View.VISIBLE"一样。

当它返回false时,它将首先显示此视图,然后暂时显示它已消失。

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

1 个答案:

答案 0 :(得分:0)

我曾经尝试过像这样的代码 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}" />
  

请注意:

     

&#39; attr&#39;在注释中必须与&#39; attr&#39;相同。用于xml文件。

     

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

My Gradle版本和dataBinder版本

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

并删除此视图中无关的其他操作。

或提供您的活动代码。