在左上angular的ConstraintLayout视图

每次我在ConstraintLayout创build像ButtonTextView这样的视图时,他们都会卡在顶部的angular落,而不是放在他们的位置。

我试图创build新的活动并更改模拟器,但结果仍然相同。

这是正在发生的事情的屏幕截图:

在这里输入图像描述

可能是什么问题?

如约束布局指南中所述 :

如果视图在设备上运行布局时没有约束条件,则会在[0,0]位置(左上angular)绘制视图。

您必须为视图添加至less一个水平和垂直的约束。

我想你没有应用任何限制。

无论是手动将约束应用于视图,还是让布局编辑器使用“Infer constraints”button为您执行:

在这里输入图像描述

当您将视图拖放到布局编辑器中时,即使它没有约束,它仍然保留在该位置…这只是为了使编辑更容易

换句话说,视图将“保留在你离开的地方”,直到你添加约束。

“预览版”与您的应用程序看起来不同的原因是因为您的应用程序运行时 ,您的XML中的任何内容都将从代码中删除 。 这些选项仅适用于Android Studio布局编辑器,而不代表您在代码运行时应该看到的内容。

这对于初学者来说可能是麻烦的,因为

缺less的约束不会导致编译错误

然而

布局编辑器将缺less的约束作为工具栏中的错误进行指示。 要查看错误和其他警告,请单击显示警告和错误 (带编号的红色button)。 为了帮助您避免缺less约束,布局编辑器可以使用自动连接为您自动添加约束, 并推断约束特征

更多细节

解决这个问题的一个快速简单的方法是点击组件(TextView,ImageView等),然后单击推断约束button。 它看起来像2个黄色加号。

推断约束图像