web-dev-qa-db-ja.com

このビューは垂直方向に制約されていません。実行時には、垂直方向の拘束を追加しない限り、左にジャンプします。

enter image description here 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>
59
onexf

制約レイアウトは、レイアウト階層を減らし、レイアウトのパフォーマンスを向上させることを目的としています(技術的には、さまざまな画面サイズに変更を加える必要はありません。あなたが新しいレイアウトエディタを使用しているとき、あなたは上記のエラーを取り除きます。

enter image description here

小さい円をクリックし、円が緑色に変わるまで左にドラッグして左拘束を追加します(数字を入力します(例:x dp)。他の辺でも同じように繰り返します。 。 enter image description here

編集:開発者のサイトによると、レイアウトに配置するときにすべてのビューに制約を追加する代わりに、各ビューを希望の位置に移動してから、[制約の推論]をクリックして制約を自動的に作成できます。もっと ここ

63
onexf

Android Studio v3以降では、Infer Constraintはドロップダウンから削除されました。

デザインプレビューの上にあるツールバーメニューの魔法の杖のアイコンを使用します。 「制約の推論」ボタンがあります。このボタンをクリックすると、テキストフィールドに自動的にいくつかの行が追加され、赤い線が削除されます。

enter image description here

28
Gvtha

デザインに行き、ウィジェットを右クリックし、Constraint Layout >> Infer Constraintsをクリックします。あなたは、いくつかのコードがあなたのテキストに自動的に追加されたことを観察することができます。

21
Atul Chavan

ドラッグするすべてのコンポーネントにこのコードをコピーするだけです。

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

例:

<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"/>
16
ainz Montenegro
Follow these steps:
Right click on designing part > Constraint Layout > Infer Constraints
4
Makvin

Constraintsを推論してもエラーが発生する場合は、次のコードを使用してください。

app:layout_constraintBottom_toBottomOf="parent"
2
user8622246

XMLレイアウトに移動するウィジェット(ボタンまたは他のビュー)がエラーを示すテキスト、そこにカーソルを合わせて押す alt+enter 不足している制約属性を選択します。

1
KeyBoardBoy

他のウィジェットだけでなく、レイアウトの端からEditTextをドラッグする必要があります。ウィジェットを囲む拘束点を画面の端にドラッグして、指定したとおりに拘束を追加することによって拘束を追加することもできます。

変更されたコードは、これに似たものになります。

    app:layout_constraintLeft_toLeftOf="@+id/router_text"
    app:layout_constraintTop_toTopOf="@+id/activity_main"
    Android:layout_marginTop="320dp"
    app:layout_constraintBottom_toBottomOf="@+id/activity_main"
    Android:layout_marginBottom="16dp"
    app:layout_constraintVertical_bias="0.29" 
1
Abdul Rahman K

例えば私はこれを持っています

<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"

relativeLayoutレイアウトを次のように使用してください。

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
1
ibrahim mert