约束布局中 , 如果不给组件添加约束 , 就会报如下错误 :
Missing Constraints in ConstraintLayout
This view is not constrained. It only has designtime positions,
so it will jump to (0,0) at runtime unless you add the constraints
The layout editor allows you to place widgets anywhere on the canvas,
and it records the current position with designtime attributes (such as layout_editor_absoluteX).
These attributes are not applied at runtime, so if you push your layout on a device,
the widgets may appear in a different location than shown in the editor.
To fix this, make sure a widget has both horizontal and vertical
constraints by dragging from the edge connections.
Issue id: MissingConstraints Vendor: Android Open Source Project Contact:
https://groups.google.com/g/lint-dev
Feedback: https://issuetracker.google.com/issues/new?component=192708
Design 界面拖动添加约束操作 : 手动拖动 布局上下左右的 约束按钮 , 添加约束 ;
Code 代码添加约束 : 在代码中 , 添加 如下 上下左右的 约束 ;
app:layout_constraintBottom_toTopOf=“@+id/guideline3” app:layout_constraintEnd_toEndOf=“parent” app:layout_constraintStart_toStartOf=“parent” app:layout_constraintTop_toTopOf=“parent”
组件约束完整示例如下 :
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView1"
android:name="kim.hsl.livedatademo.Fragment1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/guideline3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
使用 Design 面板中的 Infer Constraints 工具 , 可以自动为组件添加约束 ;