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<myapp.UserProfileDetails>"/>
</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的主要内容,如果未能解决你的问题,请参考以下文章