当我在 Android Studio 中使用布局编辑器并尝试使用约束锚点在EditText 视图和按钮 视图之间创建链(双向约束)时,它不会创建链。
如果我尝试将一个视图约束到另一个视图,它只会产生约束。
我正在尝试将EditText的右侧链接到Button的左侧。
这是我的布局编辑器的样子:
当我在 Android Studio 中使用布局编辑器并尝试使用约束锚点在EditText 视图和按钮 视图之间创建链(双向约束)时,它不会创建链。
如果我尝试将一个视图约束到另一个视图,它只会产生约束。
我正在尝试将EditText的右侧链接到Button的左侧。
这是我的布局编辑器的样子:
我也试图弄清楚这一点。我发现一种方法是选择两个视图,然后右键单击并选择水平居中。这将创建链,但是您必须相应地调整任何其他约束。我是Android新手,所以我相信会有其他方法......
我遇到过同样的问题。按照教程的指示进入 XML 来解决它: https ://developer.android.com/training/basics/firstapp/building-ui.html
在教程中,单击“查看最终布局 XML”并进行比较。我的 XML 丢失了:
app:layout_constraintLeft_toRightOf="@+id/editText"
我得到了一个解决方案,在有人真正正确回答之前可能不会是最好的解决方案,但有效。我希望这可以帮助其他和我在同一个地方的人,这样你就可以继续工作。
看起来android studio的界面在创建链时无法正常工作。这里人们的一些选项适用于 2 或 3 个元素,但我有 5 个元素。
所以答案是在代码 XML 中解决这个问题。
我的步骤是水平排列,如果你想垂直排列,只需将右/左更改为上/下
我将所有元素放在我想要的位置并删除所有连接。(在我的情况下,我将顶部和底部连接起来,这样它们就可以在中间。)
然后我连接左边的第一个元素和右边的最后一个元素。并在下一个元素的左侧连接每个元素的右侧。
app:layout_constraintRight_toLeftOf="@id/right_element"
之后,我进入代码内部并手动将连接放置到左侧元素。
app:layout_constraintLeft_toRightOf="@+id/left_element"
并创建了链条。 元素的图像与链连接
希望对你有帮助,抱歉没有发布图片,我还没有足够的声誉XD。
我认为 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_constraintHorizontal_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编辑器能改进这个
这可以通过按住 shift 按钮并按下两个小部件来具体解决。在此过程之后,您可以右键单击其中一个小部件以链接视图。将此用于 EditText 视图以及特别是按钮。
通过在编辑文本 (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" />
我能够在蓝图布局中创建链视图的方式是通过拖动单击,选择要链接的对象。然后在选择它们时右键单击并选择“水平居中”之后,我可以创建另一个约束和链
我通过打开自动连接违反了教程(因为我正在尝试一切)。
我选择了两个小部件,然后选择了水平居中。链已创建,我将 Autoconnect 关闭,然后继续教程。
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
遵循本教程的提示是确保 Android Studio 是最新的。我想知道遵循教程时某些按钮在哪里,但发现我使用的是旧版本。
就问题而言,James @ 6/6/17 给出了最好的答案。
这是创建链的诀窍
我以前遇到过同样的问题,据我所知,我们有同样的问题。
本教程希望您使用 android studio 3 版本。当我遇到这个问题时,我意识到我的 android studio 仍然是 2.2.3。将版本 3 和 sdk 等的更新安装到最新版本后,它就可以工作了。
希望这可以帮助。
设计选项卡很容易出现错误!只需在设计中做您想做的事情,但通过 XML 编写它。无需教程,一目了然,左右连接!
我通过在蓝图模式下创建链解决了这个问题。本教程从不说你必须回到它,但如果你这样做,你可以创建链。
我也遇到了同样的问题,对我有用的是在按住 CMD 按钮而不是 SHIFT 按钮的同时选择两个视图。
作为参考,我使用的是 macOS 版本的 Android Studio,并使用 SHIFT 按钮选择了两个视图,这导致链变灰。
我希望这对某人有帮助!