2022-05-07 ConstraintLayout子控件使用

2022-05-07  本文已影响0人  兣甅
1.异常模式代码和效果图
image.png
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical">

  <androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/clTop"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TextView
      android:id="@+id/tv1"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine1"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv1" />

    <View
      android:id="@+id/vLine1"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv2"
      app:layout_constraintStart_toEndOf="@id/tv1"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine2"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toEndOf="@id/vLine1"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv2" />

    <View
      android:id="@+id/vLine2"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv3"
      app:layout_constraintStart_toEndOf="@id/tv2"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv3"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine3"
      app:layout_constraintHorizontal_weight="3"
      app:layout_constraintStart_toEndOf="@id/vLine2"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv3" />

    <View
      android:id="@+id/vLine3"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv4"
      app:layout_constraintStart_toEndOf="@id/tv3"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv4"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toEndOf="@id/vLine3"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv4tv4tv4tv4tv4tv4tv4tv4tv4tv4" />
  </androidx.constraintlayout.widget.ConstraintLayout>

  <View
    android:layout_width="match_parent"
    android:layout_height="0.5dp"
    android:background="@color/c_E2E4EC"
    app:layout_constraintTop_toBottomOf="@id/clTop"
    tools:background="@color/red" />
</LinearLayout>
2.正常模式代码和效果图
image.png
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical">

  <androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/clTop"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TextView
      android:id="@+id/tv1"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine1"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv1" />

    <View
      android:id="@+id/vLine1"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv2"
      app:layout_constraintStart_toEndOf="@id/tv1"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine2"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toEndOf="@id/vLine1"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv2" />

    <View
      android:id="@+id/vLine2"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv3"
      app:layout_constraintStart_toEndOf="@id/tv2"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv3"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/vLine3"
      app:layout_constraintHorizontal_weight="3"
      app:layout_constraintStart_toEndOf="@id/vLine2"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv3" />

    <View
      android:id="@+id/vLine3"
      android:layout_width="0.5dp"
      android:layout_height="0dp"
      android:background="#E2E4EC"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toStartOf="@id/tv4"
      app:layout_constraintStart_toEndOf="@id/tv3"
      app:layout_constraintTop_toTopOf="parent"
      tools:background="@color/red" />

    <TextView
      android:id="@+id/tv4"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:minHeight="38dp"
      android:textColor="@color/gray_444444"
      android:textSize="14sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintHorizontal_weight="1.1"
      app:layout_constraintStart_toEndOf="@id/vLine3"
      app:layout_constraintTop_toTopOf="parent"
      tools:text="tv4tv4tv4tv4tv4tv4tv4tv4tv4tv4" />
  </androidx.constraintlayout.widget.ConstraintLayout>

  <View
    android:layout_width="match_parent"
    android:layout_height="0.5dp"
    android:background="@color/c_E2E4EC"
    app:layout_constraintTop_toBottomOf="@id/clTop"
    tools:background="@color/red" />
</androidx.constraintlayout.widget.ConstraintLayout>
3.问题说明

原本想整个Item按照内容高度自适应,但是在LinearLayout嵌套ConstraintLayout时会出现无法按照自己想要的高度适配,但是改为ConstraintLayout嵌套ConstraintLayout后就好了,原理暂时没有深究,只是发现这样可以解决

上一篇下一篇

猜你喜欢

热点阅读