我正在尝试使用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.+"
}
并且,删除与此视图无关的其他操作。
或者提供您的活动代码。