43

每次我创建ButtonTextViewin之类的视图时ConstraintLayout,它们都会卡在顶角,而不是我放置它们的位置。

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

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

在此处输入图像描述

可能是什么问题?

4

5 回答 5

38

约束布局指南中所述:

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

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

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

手动将约束应用于视图,或者让布局编辑器使用“推断约束”按钮为您完成:

在此处输入图像描述

于 2017-03-04T09:04:10.323 回答
6

当您将视图放入布局编辑器时,即使它没有约束,它也会停留在您离开它的位置......这只是为了使编辑更容易

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

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

对于初学者来说可能会很麻烦,因为

缺少约束不会导致编译错误

然而

布局编辑器将缺少约束指示为工具栏中的错误。要查看错误和其他警告,请单击显示警告和错误(带数字的红色按钮)。为了帮助您避免丢失约束,布局编辑器可以使用自动连接和推断约束功能自动为您添加约束

更多细节

于 2017-04-15T06:30:17.167 回答
3

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

推断约束图像

推断约束图像

于 2017-08-31T21:55:44.733 回答
2

将此在xml中添加到按钮等

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.57"

然后在设计中使用它。

祝你好运!:)

于 2018-04-10T18:17:28.050 回答
0

基本上,当您使用ConstraintLayout时会发生这种类型的问题。

  • 所以去从 Android Studio预览。

  • 选择要设置在特定位置的那个按钮

  • 最后只需单击我在下图中红色圆圈中提到的推断约束按钮。

https://i.imgur.com/sDu1ghP.jpg

Thats All 运行项目并看到魔法

谢谢

于 2018-12-09T20:24:40.333 回答