zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【错误记录】约束布局报错 ( Missing Constraints in ConstraintLayout. This view is not constrained. It only has )

IT错误 报错 not 记录 in is 布局
2023-06-13 09:18:07 时间

文章目录

一、报错信息


约束布局中 , 如果不给组件添加约束 , 就会报如下错误 :

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  

二、解决方案


1、手动添加约束 ( 推荐 )

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" />

2、自动添加约束

使用 Design 面板中的 Infer Constraints 工具 , 可以自动为组件添加约束 ;