TL;DR
The view width must be exactly half of the screen, and be centered. Using ConstraintLayout
.
Note that the view does not have any inner width.
<View android:background="#ff0000" ... />
Original question
I would like to achieve a layout where a view size is half the screen size, and centered horizontally.
Something like this: |--view--|
I can't find any way using ConstraintLayout. The best i found is by using app:layout_constraintHorizontal_weight="1"
on 2 fake views positioned at the full left and full right respectively, and app:layout_constraintHorizontal_weight="1.5"
on my view.
Any better way ?
Center a view horizontally, set layout_constraintLeft_toLeftOf and layout_constraintRight_toRightOf to parent. Center a view vertically, set layout_constraintTop_toTopOf and layout_constraintBottom_toBottomOf to parent. Align to the top left.
To create a baseline constraint, right-click the text view you want to constrain and then click Show Baseline. Then click on the text baseline and drag the line to another baseline.
With the beta release you can use percentage widths. If you cannot use the beta release, you can employ two vertical guidelines: one at 25% of the screen width and one at 75% of the width. The view with a width of 0dp
would be constrained between these two guidelines. This setup will give you a view that is 1/2 of the screen width and also centered.
The following XML demonstrates both ways; one using the ConstraintLayout
beta release and the second using features available in the current production release.
XML Layout
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main_inference" android:layout_width="match_parent" android:layout_height="match_parent"> <View android:id="@+id/viewTop" android:layout_width="0dp" android:layout_height="100dp" android:layout_marginTop="16dp" android:background="@android:color/darker_gray" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintWidth_default="percent" app:layout_constraintWidth_percent="0.5" /> <android.support.constraint.Guideline android:id="@+id/guidelineLeft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_percent="0.25" /> <View android:layout_width="0dp" android:layout_height="100dp" android:layout_marginTop="16dp" android:background="@android:color/darker_gray" app:layout_constraintEnd_toStartOf="@id/guidelineRight" app:layout_constraintStart_toEndOf="@id/guidelineLeft" app:layout_constraintTop_toBottomOf="@id/viewTop" /> <android.support.constraint.Guideline android:id="@+id/guidelineRight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_percent="0.75" /> </android.support.constraint.ConstraintLayout>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With