Android 约束布局定位 1 item below other
Android constraint layout positioning 1 item below other
我有一个约束布局,布局看起来像这样 -
如您所见,项目 Pasta
和 10:10
上下对齐。我的布局是这样的 -
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView 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:id="@+id/food_item"
style="@style/cardViewStyle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_16dp">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_name_label"
style="@style/cardViewTextTitle"
android:text="@string/food_name"
app:layout_constraintBaseline_toBaselineOf="@+id/food_name_value"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_name_value"
style="@style/cardViewTextSubTitle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.39"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Pasta" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_intake_label"
style="@style/cardViewTextTitle"
android:text="@string/food_intake_time"
app:layout_constraintBaseline_toBaselineOf="@+id/food_intake_value"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_intake_value"
style="@style/cardViewTextSubTitle"
app:layout_constraintStart_toEndOf="@id/food_intake_label"
app:layout_constraintTop_toBottomOf="@id/food_name_value"
tools:text="10:10" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
我有 ID food_name_value
水平对齐父项的开始和结束。
我的问题是我是否将 food_name_value
和 food_intake_value
正确对齐,因为标签 Intake Time
比标签 Name
长得多或者是什么对我来说最好的对齐方式是什么?
您当然需要 Barrier here, with barrierDirection="end"
and constraint_referenced_ids="food_name_label,food_intake_label"
, Then align your food_name_value, food_intake_value
with this barrier. Perfect explanation can be found at 。
我有一个约束布局,布局看起来像这样 -
如您所见,项目 Pasta
和 10:10
上下对齐。我的布局是这样的 -
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView 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:id="@+id/food_item"
style="@style/cardViewStyle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_16dp">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_name_label"
style="@style/cardViewTextTitle"
android:text="@string/food_name"
app:layout_constraintBaseline_toBaselineOf="@+id/food_name_value"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_name_value"
style="@style/cardViewTextSubTitle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.39"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Pasta" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_intake_label"
style="@style/cardViewTextTitle"
android:text="@string/food_intake_time"
app:layout_constraintBaseline_toBaselineOf="@+id/food_intake_value"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/food_intake_value"
style="@style/cardViewTextSubTitle"
app:layout_constraintStart_toEndOf="@id/food_intake_label"
app:layout_constraintTop_toBottomOf="@id/food_name_value"
tools:text="10:10" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
我有 ID food_name_value
水平对齐父项的开始和结束。
我的问题是我是否将 food_name_value
和 food_intake_value
正确对齐,因为标签 Intake Time
比标签 Name
长得多或者是什么对我来说最好的对齐方式是什么?
您当然需要 Barrier here, with barrierDirection="end"
and constraint_referenced_ids="food_name_label,food_intake_label"
, Then align your food_name_value, food_intake_value
with this barrier. Perfect explanation can be found at