android包装内容容器,使孩子碰撞并设置对齐到右边



我想制作宽度为wrap_content的Layout,里面有两个孩子。首先与父对象左对齐,其次与父对象右对齐。孩子们必须碰撞在一起并拉伸父母的宽度。这就是我所做的:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:minWidth="160dp"
android:background="@android:color/black"
>
<ImageView
android:id="@+id/status"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_alignParentLeft="true"
android:src="@mipmap/waiting" />
<TextView
app:layout_constraintLeft_toRightOf="@id/status"
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
android:text="12:00 PM"
android:textColor="@color/textColorSecondary"
android:textSize="12sp" />
</android.support.constraint.ConstraintLayout>

现在,子对象碰撞在一起,拉伸父对象,但第二个子对象(TextView#date(未向右对齐。我不知道该怎么做。

如果你想将其拉伸到父宽度,你应该使用match_parent,就像一样

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:minWidth="160dp"
android:background="@android:color/black"
>
<ImageView
android:id="@+id/status"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_alignParentLeft="true"
android:src="@mipmap/ic_launcher" />
<TextView
app:layout_constraintLeft_toRightOf="@id/status"
android:id="@+id/date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:text="12:00 PM"
android:textColor="@color/colorPrimary"
android:textSize="12sp" />
</LinearLayout>

使用LinearLayout并使用重力属性有助于

如果必须使用ConstraintLayout,那么只需调整布局中的一些约束即可。要动态地拉伸第二个子对象,请将其宽度设置为match_parent,对其startOf和endOf应用布局规则,并将重力设置为右侧或端部,以防由于其父对象的最小宽度而拉伸。

<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="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="@drawable/blue_background"
android:minWidth="160dp">
<ImageView
android:id="@+id/status"
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@mipmap/waiting"
app:layout_constraintStart_toStartOf="parent"/>
<TextView
android:id="@+id/date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="12:00 PM"
android:textColor="@color/textColorSecondary"
android:textSize="12sp"
android:gravity="right|end"
app:layout_constraintStart_toEndOf="@id/status"
app:layout_constraintEnd_toEndOf="parent"/>
</android.support.constraint.ConstraintLayout>

最新更新