42

当我在 Android Studio 中使用布局编辑器并尝试使用约束锚点在EditText 视图按钮 视图之间创建链(双向约束)时,它不会创建链。

如果我尝试将一个视图约束到另一个视图,它只会产生约束。

我正在尝试将EditText的右侧链接到Button的左侧。

这是我的布局编辑器的样子:

布局编辑器

4

16 回答 16

19

我也试图弄清楚这一点。我发现一种方法是选择两个视图,然后右键单击并选择水平居中。这将创建链,但是您必须相应地调整任何其他约束。我是Android新手,所以我相信会有其他方法......

于 2017-03-13T09:22:19.657 回答
12

我遇到过同样的问题。按照教程的指示进入 XML 来解决它: https ://developer.android.com/training/basics/firstapp/building-ui.html

在教程中,单击“查看最终布局 XML”并进行比较。我的 XML 丢失了:

app:layout_constraintLeft_toRightOf="@+id/editText"
于 2017-03-19T21:36:52.243 回答
7

在 Android Studio 3.0.1 中,选择两个对象(在 xml 设计选项卡上)并右键单击其中一个,您将在“链”选项下有两个选项:一个是水平链接,第二个是垂直链接。

在此处输入图像描述

于 2018-03-23T10:37:39.340 回答
3

我得到了一个解决方案,在有人真正正确回答之前可能不会是最好的解决方案,但有效。我希望这可以帮助其他和我在同一个地方的人,这样你就可以继续工作。

看起来android studio的界面在创建链时无法正常工作。这里人们的一些选项适用于 2 或 3 个元素,但我有 5 个元素。

所以答案是在代码 XML 中解决这个问题。

我的步骤是水平排列,如果你想垂直排列,只需将右/左更改为上/下

我将所有元素放在我想要的位置并删除所有连接。(在我的情况下,我将顶部和底部连接起来,这样它们就可以在中间。

然后我连接左边的第一个元素和右边的最后一个元素。并在下一个元素的左侧连接每个元素的右侧。

app:layout_constraintRight_toLeftOf="@id/right_element"

元素的图像连接正常,还没有链

之后,我进入代码内部并手动将连接放置到左侧元素。

app:layout_constraintLeft_toRightOf="@+id/left_element"

并创建了链条元素的图像与链连接

希望对你有帮助,抱歉没有发布图片,我还没有足够的声誉XD。

于 2017-10-16T17:15:38.683 回答
2

我认为 android studio ui 编辑器需要更多改进来创建链目前我正在使用 Android Studio Preview 3.0 Canary 3

有时从编辑器它可以完美地工作,但有时它不是,当从 ui 编辑器没有发生链接时,我们需要根据要求手动添加约束垂直或水平链以下是约束

layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

并且我们在 XML 中手动声明链样式如下

layout_constraintHorizo​​ntal_chainStyle 或 layout_constraintVertical_chainStyle

CHAIN_SPREAD -- the elements will be spread out (default style)

加权链 -- in CHAIN_SPREAD mode, if some widgets are set to MATCH_CONSTRAINT, they will split the available space

CHAIN_SPREAD_INSIDE -- similar, but the endpoints of the chain will not be spread out

CHAIN_PACKED -- the elements of the chain will be packed together. The horizontal or vertical bias attribute of the child will then affect the positioning of the packed elements

希望android studio编辑器能改进这个

于 2017-06-05T05:31:41.683 回答
2

我发现在 Android Studio 3.2.2 中,您必须单击组件树中的视图,因此左键单击第一个组件,然后按住 shift 单击第二个组件,然后右键单击,在菜单中您将看到链,如我的截图如下。

安卓工作室 3.2.2

在此处输入图像描述

于 2019-04-15T15:22:46.930 回答
1

这可以通过按住 shift 按钮并按下两个小部件来具体解决。在此过程之后,您可以右键单击其中一个小部件以链接视图。将此用于 EditText 视图以及特别是按钮。

于 2021-06-28T18:51:00.243 回答
1

通过在编辑文本 (app:layout_constraintRight_toLeftOf="@+id/button") 和按钮 (app:layout_constraintBaseline_toBaselineOf="@+id/editText") 中添加约束来解决

完整示例如下

<EditText
    android:id="@+id/editText"
    android:layout_width="245dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginStart="16dp"
    android:ems="10"
    app:layout_constraintRight_toLeftOf="@+id/button"
    android:hint="@string/edit_message"
    android:inputType="textPersonName"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginTop="16dp"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    android:layout_marginRight="16dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBaseline_toBaselineOf="@+id/editText"
    app:layout_constraintLeft_toRightOf="@+id/editText"
    android:layout_marginLeft="16dp" />
于 2017-05-22T02:32:16.537 回答
1

我能够在蓝图布局中创建链视图的方式是通过拖动单击,选择要链接的对象。然后在选择它们时右键单击并选择“水平居中”之后,我可以创建另一个约束和链

于 2017-06-06T00:22:53.267 回答
0

我通过打开自动连接违反了教程(因为我正在尝试一切)。

我选择了两个小部件,然后选择了水平居中。链已创建,我将 Autoconnect 关闭,然后继续教程。

于 2017-07-07T00:35:38.587 回答
0

what caused the problem for me- i duplicated one of my views in my layout (to speed things up- or so i thought). by doing so - i caused the problem - several views had the same android:id value. which is a big no-no.

a unique value to all my view (by changing the android:id ) helped fix this problem

于 2018-06-28T19:15:12.647 回答
0

遵循本教程的提示是确保 Android Studio 是最新的。我想知道遵循教程时某些按钮在哪里,但发现我使用的是旧版本。

就问题而言,James @ 6/6/17 给出了最好的答案。

  1. 在视图中添加三个按钮
  2. 全部选择并右键单击
  3. 选择“水平居中”

这是创建链的诀窍

于 2017-06-22T23:53:38.990 回答
0

我以前遇到过同样的问题,据我所知,我们有同样的问题。

本教程希望您使用 android studio 3 版本。当我遇到这个问题时,我意识到我的 android studio 仍然是 2.2.3。将版本 3 和 sdk 等的更新安装到最新版本后,它就可以工作了。

希望这可以帮助。

于 2017-11-03T07:44:32.227 回答
0

设计选项卡很容易出现错误!只需在设计中做您想做的事情,但通过 XML 编写它。无需教程,一目了然,左右连接!

于 2017-10-22T17:02:56.193 回答
0

我通过在蓝图模式下创建链解决了这个问题。本教程从不说你必须回到它,但如果你这样做,你可以创建链。

于 2017-05-11T20:46:46.503 回答
0

我也遇到了同样的问题,对我有用的是在按住 CMD 按钮而不是 SHIFT 按钮的同时选择两个视图。

作为参考,我使用的是 macOS 版本的 Android Studio,并使用 SHIFT 按钮选择了两个视图,这导致链变灰。

我希望这对某人有帮助!

于 2020-06-18T18:40:03.710 回答