Android studio Can';t将元素约束到屏障

Android studio Can';t将元素约束到屏障,android-studio,constraintlayout-barrier,Android Studio,Constraintlayout Barrier,我遇到了一个问题,我试图将一个按钮约束到一个垂直屏障上。当我拖动要约束到屏障的按钮一侧时,它似乎无法识别屏障。它不会捕捉到它,也不会在将鼠标悬停在它上并放开后应用任何约束 我试着从YouTube复制一个简单的教程,他将按钮限制在障碍物上,时间戳链接没有问题: 我知道您可以将barrier ID添加到按钮的XML左约束中。但这并不能完全解决根本问题 我还检查了我的版本在屏障上的当前更改日志(未更改) 编辑:这是我的XML文件: <?xml version="1.0" encoding="ut

我遇到了一个问题,我试图将一个按钮约束到一个垂直屏障上。当我拖动要约束到屏障的按钮一侧时,它似乎无法识别屏障。它不会捕捉到它,也不会在将鼠标悬停在它上并放开后应用任何约束

我试着从YouTube复制一个简单的教程,他将按钮限制在障碍物上,时间戳链接没有问题:

我知道您可以将barrier ID添加到按钮的XML左约束中。但这并不能完全解决根本问题

我还检查了我的版本在屏障上的当前更改日志(未更改)

编辑:这是我的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="match_parent">

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="TextView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:text="TextView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView4" />

    <android.support.constraint.Barrier
        android:id="@+id/barrier3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="end"
        app:constraint_referenced_ids="textView5,textView4"
        tools:layout_editor_absoluteX="411dp" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        tools:layout_editor_absoluteX="173dp"
        tools:layout_editor_absoluteY="64dp" />
</android.support.constraint.ConstraintLayout>

图形设计编辑器会出现一些小问题,比如你不能100%确定它没有使用
absoluteX
absoluteY
而不是约束。我总是更喜欢文本编辑器,因为您知道代码,因为您可以看到代码并根据需要修改它

因此,我检查了您的代码,发现您使用的是
absoluteX
absoluteY
而不是按钮的约束。可以根据需要将其约束到屏障

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"

    //These two constraints will set the position on Horizontal axis 
    app:layout_constraintStart_toEndOf="@id/barrier3"
    app:layout_constraintEnd_toEndOf="parent"

    //You should replace it as well with constraints.
    tools:layout_editor_absoluteY="64dp" />
Vertical\u bias 0.1
会给你类似的结果,它会将你的按钮定位到屏幕大小的10%,它是动态的,这意味着它在任何屏幕大小上都处于相同的位置


用这个修改你的代码,我希望你能得到答案。如果需要,您可以询问任何其他问题。

图形设计编辑器会出现一些小问题,例如您无法100%确定它没有使用
absoluteX
absoluteY
,而不是约束。我总是更喜欢文本编辑器,因为您知道代码,因为您可以看到代码并根据需要修改它

因此,我检查了您的代码,发现您使用的是
absoluteX
absoluteY
而不是按钮的约束。可以根据需要将其约束到屏障

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"

    //These two constraints will set the position on Horizontal axis 
    app:layout_constraintStart_toEndOf="@id/barrier3"
    app:layout_constraintEnd_toEndOf="parent"

    //You should replace it as well with constraints.
    tools:layout_editor_absoluteY="64dp" />
Vertical\u bias 0.1
会给你类似的结果,它会将你的按钮定位到屏幕大小的10%,它是动态的,这意味着它在任何屏幕大小上都处于相同的位置


用这个修改你的代码,我希望你能得到答案。如果需要,您可以询问任何其他问题。

如果没有您的代码,您真的希望我们如何帮助您的代码?发布了它。我真的没想到这会是一个代码问题。在设计/蓝图视图中,我无法将按钮约束到屏障。不过,我可以把一个按钮限制在一个指导原则上。如果没有你的代码,你真的希望我们在你的代码中提供帮助吗?发布了。我真的没想到这会是一个代码问题。在设计/蓝图视图中,我无法将按钮约束到屏障。不过,我可以将一个按钮约束到一个指南上。这是Android Studio的新功能。我认为这些absoluteX和absoluteY值是根据我在设计视图中拖放按钮的位置生成的。我没有对按钮应用任何约束,更关注的是为什么按钮的左约束不会捕捉/应用到设计视图中的屏障上。@MrLem实际上,它们是通过在设计编辑器中移动任何小部件生成的。但是,那';这就是你应该如何定位你的小部件,你应该使用
Constraint
。我';我已经展示了你应该如何去做。Android Studio新手。我认为这些absoluteX和absoluteY值是根据我在设计视图中拖放按钮的位置生成的。我没有对按钮应用任何约束,更关注的是为什么按钮的左约束不会捕捉/应用到设计视图中的屏障上。@MrLem实际上,它们是通过在设计编辑器中移动任何小部件生成的。但是,那';这就是你应该如何定位你的小部件,你应该使用
Constraint
。我';我已经告诉你该怎么做。