私はConstraintLayoutを使用しており、要素の左端をその上にある要素の中央に配置したいと考えています。要素の辺を他の要素の中央に配置するにはどうすればよいですか?
[I'm Element 1]
| // middle of element 1
[Element 2 should start at middle of element 1]
これはコードを記述することなく可能ですか?
私はConstraintLayoutを使用しており、要素の左端をその上にある要素の中央に配置したいと考えています。要素の辺を他の要素の中央に配置するにはどうすればよいですか?
[I'm Element 1]
| // middle of element 1
[Element 2 should start at middle of element 1]
これはコードを記述することなく可能ですか?
制約を使用して要素2を整列できます。要素を中央揃えするには、左側を要素1の左側に拘束し、右側を同じにします。だからxmlでそれは次のようなものになります:
<Element2
android:id="@+id/element2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@+id/element1"
app:layout_constraintRight_toRightOf="@+id/element1" />
これは水平にする必要があります。上下にセンタリングする場合は、上下の制約を追加するだけです。
編集:誤解質問、あなたはそれが要素1のベースラインに対するベースラインですガイドラインと位置を作成しますGuideLine
を使用することができます別の要素の中央に要素の左側を揃えたい場合:
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBaseline_toBaselineOf="@+id/element1"/>
は、その後、溶液は、以下のガイドラインた
<Element2
android:id="@+id/element2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@+id/guideline" />
にあなたの要素2の左側を揃える:代わりに、ガイドラインは、ガイドラインとして1ピクセルの*の1pxのView
を使用し、element1
layout_constraintRight_toRightOf
& layout_constraintLeft_toLeftOf
と属性のセンターに位置し、このView
ガイドラインにelement2
を揃える:
<android.support.constraint.ConstraintLayout>
...
<TextView
android:id="@+id/element1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<View
android:id="@+id/guideline"
android:layout_width="1px"
android:layout_height="1px"
android:background="#00000000"
app:layout_constraintLeft_toLeftOf="@id/element1"
app:layout_constraintRight_toRightOf="@id/element1" />
<TextView
android:id="@+id/element2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toRightOf="@id/guideline"
app:layout_constraintTop_toBottomOf="@id/element1" />
...
</android.support.constraint.ConstraintLayout>
@ktamas問題ありません! :)もしうまくいけば答えを受け入れてください!ありがとうございました。 –
申し訳ありませんが、これは私の質問ではありませんでした。あなたの答えは、コンテンツ全体を別のものの下に置くことですが、私の質問は、左側を別のものの中央に集中させることでした。 – ktamas
@ktamas申し訳ありませんが、質問に誤解がありました。私は元の答えを編集しました。 –