无法在Android Studio中的两个视图/小部件之间形成链

当我在Android Studio中使用布局编辑器时,我尝试使用约束锚来在EditText 视图Button 视图之间创build一个链(双向约束),但它并不构成链。

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

我试图将EditText的右侧链接到Button的左侧。

这是我的布局编辑器看起来像:

布局编辑器

我也想弄明白这一点。 我发现一种方法是select两个视图,然后右键单击并selectCenter Horizo​​ntally。 这将创build链,但是您必须相应地调整任何其他约束。 我是Android的新手,所以我相信会有其他的方法….

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

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

app:layout_constraintLeft_toRightOf="@+id/editText" 

我得到了一个解决scheme,可能不会是最好的,直到有人真正回答,但工作。 我希望这能帮助那些和我一样的人,所以你可以继续工作。

看起来像android studio的界面在创build链时不能正常工作。 来自这里的人的一些select适用于2或3个元素,但是我有5个元素。

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

我的步骤是水平排列,如果你想垂直只是改变右/左顶部/底部

我把所有的元素放在我想要的地方,并删除所有的连接。 ( 比我的情况下,我连接顶部和底部,所以他们可以在中间。

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

app:layout_constraintRight_toLeftOf="@id/right_element"

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

之后,我进入代码并手动连接到左侧的元素。

app:layout_constraintLeft_toRightOf="@+id/left_element"

链条创build。 元素的图像连接与链

我希望这个帮助,对不起张贴的图片,我没有足够的声誉,但XD。

通过在编辑文本(app:layout_constraintRight_toLeftOf =“@ + id / button”)和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" /> 

我认为android studio ui编辑器需要更多的改进来创build链,目前我正在使用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 -- 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编辑器能改善这一点

我已经能够在蓝图布局中创build链式视图的方式是通过拖动单击,select要链接的对象。 然后,当他们被选中时,右键单击并select“居中横向”。完成后,我可以创build另一个约束和链

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

下面的教程只是提示,以确保Android Studio是最新的。 我想知道在按照教程,某些button的位置,但发现我使用的是旧版本。

在这个问题上,最好的是17/6/17。

  1. 将三个button添加到视图中
  2. 全部选中并右键单击
  3. select“中心水平”

这是创造链条的诀窍

打开Autoconnect(因为我正在尝试一切),我违反了教程。

我select了两个小部件,然后select了Center Horizo​​ntally。 链条创build完成后,我将Autoconnectclosures,然后继续教程。

DESIGN选项卡非常容易出错! 只要做你想做的devise,但通过XML写。 不需要教程,它是不言自明的,连接所有的左派和权利!

我之前也有同样的问题,而且从我所能告诉的我们也有同样的问题。

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

希望这可以帮助。

Interesting Posts