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>
制約レイアウトは、レイアウト階層を減らし、レイアウトのパフォーマンスを向上させることを目的としています(技術的には、さまざまな画面サイズに変更を加える必要はありません。あなたが新しいレイアウトエディタを使用しているとき、あなたは上記のエラーを取り除きます。
小さい円をクリックし、円が緑色に変わるまで左にドラッグして左拘束を追加します(数字を入力します(例:x dp)。他の辺でも同じように繰り返します。 。
編集:開発者のサイトによると、レイアウトに配置するときにすべてのビューに制約を追加する代わりに、各ビューを希望の位置に移動してから、[制約の推論]をクリックして制約を自動的に作成できます。もっと ここ
デザインに行き、ウィジェットを右クリックし、Constraint Layout >> Infer Constraintsをクリックします。あなたは、いくつかのコードがあなたのテキストに自動的に追加されたことを観察することができます。
ドラッグするすべてのコンポーネントにこのコードをコピーするだけです。
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"/>
Follow these steps:
Right click on designing part > Constraint Layout > Infer Constraints
Constraints
を推論してもエラーが発生する場合は、次のコードを使用してください。
app:layout_constraintBottom_toBottomOf="parent"
XMLレイアウトに移動するウィジェット(ボタンまたは他のビュー)がエラーを示すテキスト、そこにカーソルを合わせて押す alt+enter 不足している制約属性を選択します。
他のウィジェットだけでなく、レイアウトの端から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"
例えば私はこれを持っています
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
relativeLayoutレイアウトを次のように使用してください。
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"