13

每当我在ConstraintLayout中创建像ButtonTextView这样的视图时,它们都会卡在顶部角落,而不是我放置的位置。左上角的ConstraintLayout视图

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

这是发生了什么事的截图:

enter image description here

可能是什么问题?

+0

显示您的xml代码。 – tahsinRupam

+0

你想在中心显示你的按钮和文字吗? – tahsinRupam

+0

是的,这正是我试图做的 –

回答

21

正如Constraint Layout guides说:

如果当您运行在设备上的布局视图没有限制,在位置[0,0](在左上角)绘制。

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

我想你没有应用任何约束。

无论是手动应用约束的观点,或让布局编辑器做你使用“推断约束”按钮:

enter image description here

4

当你把一个视图到PCB编辑器,即使它没有限制,它仍然保留在你离开它的地方...这只是为了使编辑更容易

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

它在预览版与您的应用程序中看起来不同的原因是因为您的XML中的任何内容与tools:都是going to be removed from the code when your app runs。这些选项仅适用于Android Studio布局编辑器,并不代表您在代码运行时应该看到的内容。

而且这可能是麻烦的初学者,因为

缺少约束,不会造成编译错误

然而

布局编辑器显示缺少约束工具栏中有错误。要查看错误和其他警告,请单击显示警告和错误(带数字的红色按钮)。为了帮助您避免丢失的约束,布局编辑器可以自动与Autoconnect and infer constraints features

More details

+0

我发现即使在布局编辑器中也会发生这种情况。例如,如果我将“ImageView”放入布局的中间,它仍会卡在左上角。我必须改变它的尺寸,然后才能移动它,或者做任何事情。这似乎不是记录的行为。 – orodbhen

+0

是的,这正是*“留在你离开它的地方”*的意思 –

2

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

infer constraints image

相关问题