此视图不受垂直约束.在运行时,除非添加垂直约束,否则它将跳转到左侧

one*_*exf 74 android-layout android-edittext layout-editor android-studio

在此输入图像描述Android Studio 2.2中的新布局编辑器会在EditText和Buttons等视图上显示此错误.此外,任何有助于使用新约束布局入门的链接都将受到赞赏.

码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.set.email.MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <TextView
        android:text="To:"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="7dp"
        tools:layout_editor_absoluteY="4dp"
        android:id="@+id/textTo"/>

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="24dp"
        android:id="@+id/editTo"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        android:layout_width="384dp"
        android:layout_height="42dp"
        android:inputType="textPersonName"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="94dp"
        android:id="@+id/editSubject"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        android:layout_width="384dp"
        android:layout_height="273dp"
        android:inputType="textPersonName"
        android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="179dp"
        android:id="@+id/editMessage"
        app:layout_constraintLeft_toLeftOf="@+id/activity_main"
        tools:layout_constraintLeft_creator="50"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>

    <Button
        android:text="Send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="140dp"
        tools:layout_editor_absoluteY="454dp"
        android:id="@+id/btnSend"
        app:layout_constraintLeft_toLeftOf="@+id/editMessage"
        tools:layout_constraintLeft_creator="0"
        app:layout_constraintRight_toRightOf="@+id/activity_main"
        android:layout_marginEnd="16dp"
        tools:layout_constraintRight_creator="0"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"/>


</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

one*_*exf 72

约束布局旨在减少布局层次结构并提高布局性能(从技术上讲,您不必对不同的屏幕尺寸进行更改,不重叠,在移动设备上使用魅力以及具有相同约束的选项卡).这是怎么回事当你使用新的布局编辑器时,你摆脱了上面的错误.

在此输入图像描述

单击小圆圈并向左拖动直到圆圈变为绿色,添加左边约束(给出一个数字,比如说x dp.用另一边重复它,如果下面有另一个视图,则将底部约束留空. 在此输入图像描述

编辑:根据开发人员站点,您可以将每个视图移动到所需的位置,而不是在将每个视图放置到布局中时为每个视图添加约束,然后单击"推断约束"以自动创建约束.更多在这里


Gvt*_*tha 46

从Android Studio v3及更高版本开始,从下拉列表中删除了Infer Constraint.

使用设计预览上方工具栏菜单中的魔棒图标 ; 有" 推断约束 "按钮.单击此按钮,这将自动在文本字段中添加一些行,并删除红线.

在此输入图像描述


小智 27

只需将此代码复制到您在Android中拖动的所有内容或按钮即可

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
Run Code Online (Sandbox Code Playgroud)

例:

<TextView
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:text="To:"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:layout_editor_absoluteX="7dp"
    tools:layout_editor_absoluteY="4dp"
    android:id="@+id/textTo"/>
Run Code Online (Sandbox Code Playgroud)

  • 但为什么?你能解释一下它的细节吗? (4认同)

Atu*_*van 22

转到设计,右键单击您的Widget,Constraint Layout >> Infer Constraints.您可以观察到某些代码已自动添加到您的文本中.


Van*_*hel 10

app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
Run Code Online (Sandbox Code Playgroud)

这对我有很大帮助


Mak*_*vin 5

Follow these steps:
Right click on designing part > Constraint Layout > Infer Constraints
Run Code Online (Sandbox Code Playgroud)


小智 5

如果推断Constraints仍然给您错误,只需使用以下代码:

app:layout_constraintBottom_toBottomOf="parent"
Run Code Online (Sandbox Code Playgroud)