问题
This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you add constraints The
详细问题
笔者设计UI界面,运行UI界面,发现所有拖拽的组件全部集中在左上角,检查代码,发现所有标签报错,具体报错如下图所示
解决方案
方案一
1、点击Infer Constraints
具体操作如下
方案二
对于报错组件,添加如下代码段:
app:layout_constraintBottom_toBottomOf="底部参照对象(下)"
app:layout_constraintEnd_toEndOf="结束参照对象(右)"
app:layout_constraintStart_toStartOf="开始部参照对象(左)"
app:layout_constraintTop_toTopOf="顶部参照对象(上)"
具体的
app:layout_constraintBottom_toTopOf="@+id/editTextTextPassword"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toTopOf="parent"
产生原因
由于在UI界面的设计中,一些组件缺乏必要的约束。在Android或类似的UI框架中,UI组件的位置和大小通常由布局约束来控制,以确保它们在运行时能够正确地显示在屏幕上。
当一个组件缺乏约束时,系统无法确定该组件在布局中的确切位置,因此在设计时会使用默认的位置 (0,0),即左上角。在运行时,这些没有约束的组件就会跳到左上角,导致所有的拖拽组件都集中在那个位置,而不是按照预期的布局方式显示在界面上。
解决原因
添加正确的布局约束,以确保在运行时UI组件能够按照预期的方式正确显示在屏幕上。
具体的:
方案一:通过"Infer Constraints"工具
系统会尝试自动检测并添加适当的布局约束,以便在设计时确保组件位置的正确性。这是一种自动化的方式,适用于简单的布局情况。
方案二:手动添加约束:
在某些情况下,特别是对于复杂布局或特定需求,手动添加约束是更可靠的方法。
通过手动在布局编辑器中设置水平和垂直方向上的约束,确保每个组件在布局中都有明确的位置和大小。
参考文献
This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you add constraints The
产生原因与解决原因部分参考chatgpt
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈