每当我在Button
中创建TextView
和ConstraintLayout
等视图时,它们都会卡在顶角而不是我放置的位置。
我尝试创建新活动并更改模拟器,但结果仍然相同。
这是发生了什么的屏幕截图:
可能是什么问题?
答案 0 :(得分:29)
如果在设备上运行布局时视图没有约束,则会在位置[0,0](左上角)绘制它。
您必须为视图添加至少一个水平约束和一个垂直约束。
我猜你没有应用任何约束。
手动将约束应用于视图,或让布局编辑器使用“Infer constraints”按钮为您执行此操作:
答案 1 :(得分:5)
当您将视图拖放到布局编辑器中时,即使它没有约束,它也会保留在您离开的位置...这只是为了使编辑更容易
换句话说,视图将会留在您离开的地方"直到你添加约束。
它在预览与您的应用中看起来不同的原因是因为XML tools:
中的任何内容都是going to be removed from the code when your app runs。这些选项仅适用于Android Studio布局编辑器,不代表您在代码运行时应该看到的内容。
这对初学者来说可能很麻烦,因为
缺少的约束不会导致编译错误
<强>然而强>
布局编辑器将缺少的约束指示为工具栏中的错误。要查看错误和其他警告,请单击显示警告和错误(带编号的红色按钮)。为了帮助您避免遗漏约束,布局编辑器可以使用Autoconnect and infer constraints features
自动为您添加约束
答案 2 :(得分:3)
答案 3 :(得分:0)
将这个在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"
然后在设计中使用它。
祝你好运! :)答案 4 :(得分:0)