Reputation: 297
I'm a little bit struggling with implement layouts with constrain layout.
Currently I've this layout:
And it's what I wanted to acheive, but How can I make this row act like a "group"?
If I add this spinner for example, all my layout is a mess and I need change bias to align things and it's not good approach.
my layout code:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@android:color/white">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="8dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintBottom_toTopOf="@+id/spinner3"
app:layout_constraintEnd_toStartOf="@+id/from_image_view"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.415" />
<ImageView
android:id="@+id/from_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintBottom_toTopOf="@id/from_text_view"
app:layout_constraintEnd_toStartOf="@+id/to_image_view"
app:layout_constraintStart_toEndOf="@+id/editText"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/ic_calendar_right" />
<ImageView
android:id="@+id/to_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
app:layout_constraintBottom_toTopOf="@id/to_text_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/from_image_view"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/ic_calendar_right" />
<TextView
android:id="@+id/from_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:text="From"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/spinner3"
app:layout_constraintStart_toStartOf="@+id/from_image_view"
app:layout_constraintTop_toBottomOf="@+id/from_image_view" />
<TextView
android:id="@+id/to_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="46dp"
android:text="To"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/spinner3"
app:layout_constraintStart_toStartOf="@+id/to_image_view"
app:layout_constraintTop_toBottomOf="@+id/to_image_view" />
<Spinner
android:id="@+id/spinner3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="23dp"
tools:layout_editor_absoluteY="136dp"
tools:listitem="@android:layout/simple_list_item_1" />
</androidx.constraintlayout.widget.ConstraintLayout>
Upvotes: 0
Views: 145
Reputation: 2301
Add constraint top of imageview and text view to edit text
app:layout_constraintBottom_toBottomOf="@id/from_text_view"
app:layout_constraintTop_toTopOf="@id/from_image_view"
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="8dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintBottom_toBottomOf="@id/from_text_view"
app:layout_constraintTop_toTopOf="@id/from_image_view"
app:layout_constraintEnd_toStartOf="@+id/from_image_view"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0.415" />
and for spinner add start of edit text
app:layout_constraintStart_toStartOf="@id/editText"
for easy reference app:layout_constraintBottom_toBottomOf
in this attribute constraintBottom
for current view's bottom and toBottomOf
is the id of reference view's bottom.
For example in your spinner view app:layout_constraintStart_toStartOf="@id/editText"
in constraintStart
mean start of spinner view and toStartOf
is align with start of edittext view.
Upvotes: 1