0

Androidの制約レイアウトでは、複数の要素に1つの境界線を配置するにはどうすればよいですか?制約レイアウトの主な利点の1つは、ビューをネストする必要がないことです。これは、制約レイアウト内で別のレイアウトを使用するシナリオですか?制約レイアウトで複数の要素の周りに1つの境界線を置く方法は?

+0

入れ子なしでこれを行うことができます。しかし、あなたのレイアウトが実際にどのように見えるかによって、たくさんのものが変わります。 –

+1

https://constraintlayout.github.io/cookbook/background.html –

答えて

0

あなたのコードをもっと見ることなく、あなたの実際のレイアウトがどんなものかを知ることは難しいです。しかし、これはこれは、これらの色の景色が持っているいくつかのいくつかのウィジェットです

enter image description here

ような出力がどのように見えるかであるビューのいずれかを入れ子にすることなく、

<android.support.constraint.ConstraintLayout 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"> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:background="@drawable/border" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_margin="4dp" 
     app:layout_constraintBottom_toBottomOf="@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.7"/> 

    <View 
     android:id="@+id/v1" 
     android:layout_width="100dp" 
     android:layout_height="200dp" 
     android:layout_marginStart="16dp" 
     android:layout_marginTop="16dp" 
     android:background="#8FF0" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <View 
     android:id="@+id/v2" 
     android:layout_width="200dp" 
     android:layout_height="100dp" 
     android:layout_marginEnd="16dp" 
     android:layout_marginTop="16dp" 
     android:background="#8F0F" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <View 
     android:id="@+id/v3" 
     android:layout_width="100dp" 
     android:layout_height="0dp" 
     android:layout_marginStart="16dp" 
     android:layout_marginTop="8dp" 
     android:layout_marginBottom="16dp" 
     android:background="#80FF" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/v1" 
     app:layout_constraintBottom_toBottomOf="@id/guideline"/> 

    <View 
     android:id="@+id/v4" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="16dp" 
     android:background="#8000" 
     app:layout_constraintBottom_toTopOf="@+id/v5" 
     app:layout_constraintEnd_toStartOf="@+id/v2" 
     app:layout_constraintStart_toEndOf="@+id/v1" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <View 
     android:id="@+id/v5" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginEnd="16dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="8dp" 
     android:background="#8000" 
     app:layout_constraintBottom_toBottomOf="@+id/v3" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toEndOf="@+id/v1" 
     app:layout_constraintTop_toBottomOf="@+id/v2" /> 

</android.support.constraint.ConstraintLayout> 

いくつかのレイアウトの周囲に境界線を描画するための一つの方法でありますレイアウトに配置されています。また、境界線が別のビューに設定されています。

関連する問題