【发布时间】:2016-04-29 07:55:23
【问题描述】:
我在 android 中有以下 xml,我正在尝试使用 xml 来演示一个点。我想使用原始数学,根据结果我将显示一个文本视图。例如:
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="i am now visible"
android:visibility="@{5*5 ==25 ? View.VISIBLE : View.GONE}"/>
这显然只是为了我的个人教育,但可以这样做吗?还是必须在课堂上?
现在我得到一个构建编译器错误,因为它将整个事物视为资源类型而不是数据绑定。同样在我的 gradle 构建文件中,我启用了数据绑定:
dataBinding {
enabled = true
}
如果有必要,整个 xml 文件看起来像这样,请原谅内务,我只需要知道为什么数据绑定不起作用而不是文件的其余部分。并且 textview 确实出现在视图中。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sample_main_layout">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="i am now visible"
android:visibility="@{1==1 ? View.VISIBLE : View.GONE}"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
我感觉我没有设置数据绑定对吗?我的 gradle 文件启用了它,然后对于类路径我尝试这样做:
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
classpath 'com.android.databinding:dataBinder:1.+'
}
但 gradle 无法同步,说明没有这样的类路径。错误是这样的:
`Error:Unable to find method 'android.databinding.tool.LayoutXmlProcessor.<init>(Ljava/lang/String;Landroid/databinding/tool/writer/JavaFileWriter;IZLandroid/databinding/tool/LayoutXmlProcessor$OriginalFileLookup;)V'.
我在网上搜索,但我找不到在 android studio 中启用数据绑定的官方方法。我在 IDE 的 2.0 上。 `
【问题讨论】:
-
这是在带有
<layout>根标签的布局资源中吗? -
是的,我更新了问题。如果我从 xml 文件中的 textview 中删除数据绑定引用,则布局本身可以正常工作。要启用数据绑定,我只需要在 gradle 中设置 enabled =true 对吗?还有什么吗?
标签: android data-binding