Android Studioでレイアウトエディターを使用していて、EditTextの間にチェーン(双方向制約)を作成しようとするとViewおよびButtonView制約アンカーを使用すると、鎖。
一方Viewをもう一方に制約しようとする場合にのみ、制約を作成します。
EditTextの右側をButtonの左側に連結しようとしています。
これが私のレイアウトエディターの外観です。
私もこれを理解しようとしていました。その方法の1つは、両方のビューを選択し、右クリックして[水平方向に中央に配置]を選択することです。これによりチェーンが作成されますが、それに応じて他の制約を調整する必要があります。私はAndroidが初めてなので、他の方法があると確信しています。
同じ問題がありました。チュートリアルの指示に従ってXMLにアクセスして解決しました: https://developer.Android.com/training/basics/firstapp/building-ui.html
チュートリアルで、「最終レイアウトXMLを見る」をクリックして比較します。私のXMLが欠落していました:
app:layout_constraintLeft_toRightOf="@+id/editText"
私は解決策を手に入れました。誰かが本当に適切に答えるまではおそらく最善の解決策ではありませんが、うまくいきます。これが私と同じ場所で立ち往生している他の人たちの助けになることを願っています。そうすれば、仕事を続けることができます。
Androidのインターフェイスは、チェーンを作成するために来たときにスタジオが正常に動作していません。ここの人々からのいくつかのオプションは、2または3要素のように動作します.
だから答えはコードXMLでこれを解決することです
私の手順はHorizontalの配置です。verticalだけで、Top/BottomのRight/Leftを変更したい場合
すべての要素を必要な場所に配置し、すべての接続を削除します。 (私の場合よりも、上部と下部を接続して中央に配置できるようにしました。)
次に、左の最初の要素と右の最後の要素を接続します。そして、次の要素の左側にある各要素の右側を接続します。
app:layout_constraintRight_toLeftOf="@id/right_element"
その後、コード内に移動し、左の要素に手動で接続します。
app:layout_constraintLeft_toRightOf="@+id/left_element"
そしてchainが作成されました。 チェーンで接続する要素の画像
私はこの助けを望みます、写真を投稿しないで申し訳ありません、私はまだ十分に評判を持っていませんXD。
Android studio uiエディターは、現在使用しているチェーンを作成するためにより多くの改善が必要だと思うAndroid Studio Preview 3.0 Canary 3
エディターからは完全に機能する場合もありますが、UIエディターからリンクされない場合は、要件に従って手動で制約を追加する必要があります
_layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf
_
また、次のようにXMLでチェーンスタイルを手動で宣言します
layout_constraintHorizontal_chainStyleまたはlayout_constraintVertical_chainStyle
CHAIN_SPREAD-- the elements will be spread out (default style)
重み付きチェーン _-- in CHAIN_SPREAD mode, if some widgets are set to MATCH_CONSTRAINT, they will split the available space
_
CHAIN_SPREAD_INSIDE _-- similar, but the endpoints of the chain will not be spread out
_
CHAIN_PACKED _-- the elements of the chain will be packed together. The horizontal or vertical bias attribute of the child will then affect the positioning of the packed elements
_
希望Androidスタジオエディターはこれを改善します
編集テキスト(app:layout_constraintRight_toLeftOf = "@ + id/button")とボタン(app:layout_constraintBaseline_toBaselineOf = "@ + id/editText")の両方に制約を追加することで解決しました
以下の完全な例
<EditText
Android:id="@+id/editText"
Android:layout_width="245dp"
Android:layout_height="wrap_content"
Android:layout_marginLeft="16dp"
Android:layout_marginStart="16dp"
Android:ems="10"
app:layout_constraintRight_toLeftOf="@+id/button"
Android:hint="@string/edit_message"
Android:inputType="textPersonName"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent" />
<Button
Android:id="@+id/button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Button"
Android:layout_marginRight="16dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBaseline_toBaselineOf="@+id/editText"
app:layout_constraintLeft_toRightOf="@+id/editText"
Android:layout_marginLeft="16dp" />
ブループリントレイアウトでチェーンビューを作成する方法は、ドラッグクリックして、リンクするオブジェクトを選択することです。次に、それらが選択されている状態で、右クリックして「水平方向の中央」を選択します
Autoconnectをオンにしてチュートリアルに反しました(すべてを試していたため)。
両方のウィジェットを選択してから、水平方向に中央を選択しました。チェーンが作成され、自動接続をオフに戻してから、チュートリアルを続けました。
私は以前にも同じ問題を抱えていましたが、私が言えることから、同じ問題を抱えています。
チュートリアルでは、Android studio 3バージョンを使用することを想定しています。この問題が発生したとき、Android studio 2.2.3バージョン3およびSDKなどの場合、動作する最新バージョンに。
お役に立てれば。
チュートリアルに従うときのヒントは、Android Studioが最新であることを確認することです。チュートリアルに従うときに特定のボタンがどこにあるのかと思っていましたが、古いバージョンを使用していました。
質問に関して言えば、最高はジェームズ@ 6/6/17によって与えられます。
これはチェーンを作成するトリックを行います
[デザイン]タブにはバグが非常に多く発生します。デザインでやりたいことを実行するだけで、XMLで作成します。チュートリアルの必要はありません、それは自明です、すべての左と権利を接続してください!
私にとって問題を引き起こしたもの-私はレイアウトでビューの1つを複製しました(物事をスピードアップするために-またはそう思いました)。そうすることで-私は問題を引き起こしました-複数のビューが同じAndroid:id値を持ちました。これは大きな問題です。
私のすべてのビューに固有の値(Android:idの変更)がこの問題の修正に役立ちました
ブループリントモードでチェーンを作成することでこれを解決しました。チュートリアルでは、戻る必要があるとは決して言われていませんが、そうすればチェーンを作成できます。