Constraint Layout
を実装しようとしていますが、Barrier
とGuideline
は同じです。どちらも仕切りのように機能します。それらの間に違いはありますか?制約レイアウトのバリアとガイドラインの違いは何ですか?
4
A
答えて
4
USEへの障壁
は、動的な高さを持つ2つのTextViewを持っていると言うと、あなただけの最も高いのTextView下のボタンを配置したい:
ONLYレイアウトで直接実装する方法は、水平方向のバリアを使用することです。このバリアでは、2つのTextViewの高さに基づいて制約を指定できます。次に、Buttonの上端を水平方向のバリアの下部に拘束します。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
android:background="#AAA"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
android:background="#DDD"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="left_text_view,right_text_view" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/barrier" />
</android.support.constraint.ConstraintLayout>
ガイドライン
を使用するためにあなたは彼らが持っているものは何でも、コンテンツ画面の高さの30%に上記のTextViewの高さを制限したいと言います。
あなたがそのガイドラインに割合の位置および制約のTextViewの底部と水平ガイドラインを追加する必要があることを実装します。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="#AAA"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:background="#DDD"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3" />
</android.support.constraint.ConstraintLayout>
結論
バリアと指針との間の唯一の違いは、バリアの位置は、それとガイドラインの位置は常に固定されている内に含まれる複数のUI要素のサイズに基づいて、常に柔軟であることです。
1
Official documentation on Barrier:
指針と同様にA障壁は、入力として、複数のウィジェットを参照し、指定された側の最も極端なウィジェットに基づいて仮想ガイドラインを作成します。たとえば、左のバリアは、参照されるすべてのビューの左に揃えられます。
、障壁は、あなたがするビューを制約することができます目に見えないラインです。障壁がそれ自身の位置を定義しないことを除いて;バリア位置は、その中に含まれるビューの位置に基づいて移動します。これは、特定のビューではなくビューのセットにビューを制限する場合に便利です。
関連する問題
- 1. 制約レイアウトでTextViewのベースラインをガイドラインに揃える
- 2. レイアウトの違いは何ですか: 'hbox'とレイアウト: '列'
- 3. 違い/類似要素制約のない要素との違いは何
- 4. バリアがあるConstraintLayout;サイズに応じてバリアのボトム/トップへの制約方法
- 5. 主キーと一意制約の主な違いは何ですか?
- 6. Interface Builderのサイズインスペクタでフレームとレイアウトの違いは何ですか?
- 7. Androidのレイアウトとコンテナの違いは何ですか?
- 8. RoRのビューとレイアウトの違いは何ですか?
- 9. このXMLレイアウトと対応するJavaレイアウトの違いは何ですか?
- 10. 制約レイアウト
- 11. 制約レイアウトtextview
- 12. 制約レイアウトとパーセント相対レイアウト
- 13. JavaScriptの観測値と約束の違いは何ですか?
- 14. 制約レイアウトvs相対レイアウト
- 15. 一意制約の除外制約は、違いはありますか?
- 16. プログラムの追加制約は、自動レイアウトの制約を破る
- 17. 外部キーの制約がない「キー」とは何ですか?
- 18. AzureテナントとAzure契約の違いは何ですか?
- 19. 制約レイアウト変更制約をプログラム
- 20. 制約レイアウトの余白
- 21. AndroidのNoClassDefFoundErrorが制約レイアウト
- 22. UIView transitionFromView:toView:レイアウトの制約
- 23. iOSの制約 - 自動レイアウト
- 24. 制約レイアウトTextViewオーバーラップ
- 25. UIViewスワップとレイアウト制約のアニメーション
- 26. Androidの制約レイアウトはプログラム的には?
- 27. NOT NULL制約とCHECKの違い(attrがnullではない)
- 28. 制約レイアウトは、Android Studioではスクロールビュー
- 29. これはどのようなレイアウトの制約ですか?
- 30. 制限付きワイルドカードと型パラメータの違いは何ですか?