为什么我不能使用ConstaintLayout属性

时间:2018-08-28 15:49:54

标签: android android-layout android-constraintlayout

因此,我尝试首次使用ConstraintLayout。而且,我无法使用诸如app:layout_constraintBottom_toBottomOf之类的ConstraintLayout属性来定位其子项。

当我尝试使用属性时,代码也不会编译。如果我使用ConstraintLayout,它将进行编译,但都不是属性。我应该怎么做才能访问那些属性?

我得到的构建错误是

error: not well-formed (invalid token).
Message{kind=ERROR, text=error: not well-formed (invalid token)., sources= 
[C:\AndroidWorkSource\SalesRabbit-Android\Universal- 
Sales\app\src\main\res\layout\fragment_routeitem_list.xml:48], original 
message=, tool name=Optional.of(AAPT)}

这是有问题的xml布局:

<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="match_parent"
    android:orientation="vertical"
    android:background="@color/white">

    . . . . 

    <android.support.v7.widget.RecyclerView
        android:id="@+id/my_routs_list"
        android:name="com.salesrabbit.android.sales.universal.canvass.routeing.MyRouteFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        app:layoutManager="LinearLayoutManager"
        tools:context=".canvass.routeing.MyRouteFragment"
        tools:listitem="@layout/fragment_routeitem"
        android:layout_below="@id/my_routes_divider"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        app:layout_constraintBottom_toBottomOf ="id/my_routs_list"
        android:gravity="center"
        android:orientation="horizontal">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="?android:attr/buttonBarButtonStyle"
            android:drawableLeft="@drawable/caret"
            android:text="@string/my_routs_new_route"
            android:background="@color/white"
            android:layout_gravity="center_horizontal"
            />
    </LinearLayout>



</android.support.constraint.ConstraintLayout>

在构建文件中,我有这个:

dependencies { 
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    . . . . .

1 个答案:

答案 0 :(得分:2)

在线

app:layout_constraintBottom_toBottomOf ="id/my_routs_list"

HAIR SPACE之前有一个奇怪的空白字符,称为U+200A=),这会导致XML格式错误。删除它并在ID之前添加@应该可以解决您的问题:

app:layout_constraintBottom_toBottomOf="@id/my_routs_list"