app:layout_constraint 值在 xml 源视图中始终显示为未定义 - Android Studio 3.2

Posted

技术标签:

【中文标题】app:layout_constraint 值在 xml 源视图中始终显示为未定义 - Android Studio 3.2【英文标题】:app:layout_constraint values always displayed as undefined in xml source view - Android Studio 3.2 【发布时间】:2018-09-25 11:51:48 【问题描述】:

我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <data>
        <variable
            name="profile"
            type="android.arch.lifecycle.MutableLiveData&lt;myapp.UserProfileDetails&gt;"/>
    </data>

    <ScrollView
        android:id="@+id/scrollViewProfileContainer"
        android:layout_
        android:layout_
        android:fillViewport="true">

    <android.support.constraint.ConstraintLayout
        android:layout_
        android:layout_
        android:fillViewport="true"
        tools:context=".UserProfileEditActivity">

        <ImageView
            android:id="@+id/imageViewProfileAvatar"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:scaleType="fitXY"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/com_facebook_profile_picture_blank_square"/>

        <TextView
            android:id="@+id/textView9"
            android:layout_
            android:layout_
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="16dp"
            android:text="@profile.name + ' ' + profile.lastName"
            android:textAlignment="viewStart"
            android:ellipsize="end"
            android:maxLines="2"
            android:textAppearance="@android:style/TextAppearance.Material.Display1"
            app:layout_constraintBottom_toBottomOf="@+id/imageViewProfileAvatar"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/imageViewProfileAvatar"
            app:layout_constraintTop_toTopOf="parent"/>

        <TextView
            android:id="@+id/textView11"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="32dp"
            android:text="@string/label_profile_name"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/imageViewProfileAvatar"/>

        <EditText
            android:id="@+id/editText3"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="@=profile.name"
            android:maxLength="15"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textView11"/>

        <TextView
            android:id="@+id/textView12"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:text="@string/label_profile_last_name"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editText3"/>

        <EditText
            android:id="@+id/editText5"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="@=profile.lastName"
            android:maxLength="30"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textView12"/>

        <TextView
            android:id="@+id/textView13"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:text="@string/label_profile_phone"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editText5"/>

        <EditText
            android:id="@+id/editText6"
            android:layout_
            android:layout_
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:ems="10"
            android:maxLength="32"
            android:inputType="phone"
            android:text="@=profile.phone"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textView13"/>

    </android.support.constraint.ConstraintLayout>
    </ScrollView>
</layout>

有什么问题? app:layout_constraintBottom_toBottomOf="@+id/imageViewProfileAvatar" 之类的每个属性在源视图中都以红色突出显示,例如:

无法解析符号'"@+id/imageViewProfileAvatar'

上面的所有 app:layout_constrait... 属性也是如此。但是,设计师似乎很好,代码编译得很好,应用程序工作正常。

这在更新到 Android Studio 3.2 后开始。你有什么主意吗?很烦人。我试过了:重建应用程序,使缓存无效,重新同步到 gradle,没有任何帮助。

在build.gradle中添加约束布局如下:

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

【问题讨论】:

在重建项目之前您是否尝试过清理项目? 是的,正如我在问题中提到的那样 这就是你所说的“无效缓存”的意思? 没关系,我在构建之前尝试过 celan,即使我没有在我的问题中明确提到它。它没有帮助。无效缓存我的意思是选项 File->Invalidate Cache & Restart 你应该提到它,但没关系。您可以发布约束布局的 build.gradle 行吗? 【参考方案1】:

在 (app/build.gradle) 中添加跟随依赖

实现 'com.android.support.constraint:constraint-layout:1.1.3'

【讨论】:

以上是关于app:layout_constraint 值在 xml 源视图中始终显示为未定义 - Android Studio 3.2的主要内容,如果未能解决你的问题,请参考以下文章

如何使值在 cassandra 中独一无二

参数值在 Ajax 中为空?

为啥整数类缓存值在 -128 到 127 范围内?

值在枚举列表中

js中哪些值在if判断是false

如果值在数组中,则隐藏表数据