数据绑定:属性缺少Androld名称空间前缀

时间:2017-11-27 13:30:54

标签: android

Android Studio 3.0

classpath 'com.android.tools.build:gradle:3.0.1'

  dataBinding {
        enabled = true
    }

我想使用数据绑定。

这是我的xml布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <data>
        <variable
            name="offer"  type="com.myproject.customer.Offer" />
    </data>

</android.support.constraint.ConstraintLayout>

但我得到错误:

Attribute is missing the Android namespace prefix

1 个答案:

答案 0 :(得分:13)

您的数据绑定XML根目录应为layout标记

From Docs

Data-binding layout files are slightly differentstart with a root tag of layout followed by a data element以及视图根元素。此视图元素是您的根在非绑定布局文件中的位置。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
   <data>
       <variable name="user" type="com.example.User"/>
   </data>

  <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

  </android.support.constraint.ConstraintLayout>

</layout>