在ConstraintLayout错误的约束部分中定义id(@ + id)

时间:2018-11-13 14:47:50

标签: android android-studio android-constraintlayout

在约束部分(例如app:layout_constraintBottom_toTopOf)中首先定义id(@ + id)时,出现错误“无法解析符号”

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        app:layout_constraintBottom_toTopOf="@+id/tv2" />

    <TextView
        android:id="@id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.constraint.ConstraintLayout>

查看屏幕截图:

enter image description here

在gradle中,我的约束布局为1.1.3,Android Studio版本为3.2.1,我最近从较早版本进行了更新:

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

应用正常运行,没有任何错误,但该错误显示在android studio布局窗口中。

使缓存无效,重建和更改约束布局版本没有帮助!

Java类R.id.tv2中的

正常工作,当我按住Control键并单击它时,可以在R类中看到其字段。 编辑器是否正在使用与Java代码中的R类不同的另一类ID?

2 个答案:

答案 0 :(得分:0)

只需在所有地方使用@+id/:加号表示这是一个新的资源ID,如果aapt工具将在R.java类中创建一个新的资源整数。它不存在docs

答案 1 :(得分:0)

这个问题是关于旧 Android Studio 和当前版本的 Android Studio 中使用 ConstraintLayout 库的 androidx 版本中的一个错误,这个错误没有出现。