Android数据绑定:包含标记的可见性

根据http://developer.android.com/tools/data-binding/guide.html#imports ,我们可以在可见性中使用这样简单的expression式:

 

但是,当我尝试在include标记中执行相同操作时,如下所示:

  

然后Studio不仅以红色显示expression式,而且在构建时它会在自动生成的绑定类中显示以下错误:

错误:(138,29)错误:找不到符号方法setVisibility(int)

这是自动生成的绑定类中发生错误的位置

 // batch finished if ((dirtyFlags & 0x3L) != 0) { // api target 1 this.imageLayout.setVisibility(NotifTypeNotificatio1); } imageLayout.executePendingBindings(); 

Solutions Collecting From Web of "Android数据绑定:包含标记的可见性"

我想你要做的事情看起来像这样:

在您包含的布局中,指定一个布尔variables并将其绑定到所需视图的可见性

        

然后在您的调用布局中绑定您的值

  

您可以通过"http://schemas.android.com/apk/res-auto"命名空间将所有必需参数从父xml传递到包含的xml。

语法是res-auto namespace:variable name

例如

 < ?xml version="1.0" encoding="utf-8"?>      

include_user_image.xml

 < ?xml version="1.0" encoding="utf-8"?>        

这有点晚了,但最近我遇到了这个问题。

我相信这实际上是Data Binding编译器中的一个错误,因为可以直接在标签上设置android:visibility属性(即没有Databinding)。

很好的解释

  1. 你可以直接传递Integer值的visibility
  2. 您也可以通过设置default=gone in binding来设置visibility默认值。

例如,这是included_layout.xml

       

并使用像