如何在 ChipGroup 中居中对齐芯片?

How to center align Chips in ChipGroup?

我有 3 个芯片,我想要实现的是将第一个芯片水平对齐到屏幕的开头,第二个在中间,第三个在屏幕末端。

我还想问一下如何在芯片组中添加新行,比如在第一行添加 3 个芯片,然后在第二行添加 TextView,在第三行添加另外 3 个芯片。

编辑:我通过用 LinearLayout 包裹我的 TextView 解决了第二个问题

<com.google.android.material.chip.ChipGroup
            android:id="@+id/chipGroup"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:chipSpacingHorizontal="40dp"
            app:singleSelection="true">


            <com.google.android.material.chip.Chip
                android:id="@+id/chip_1"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="8:30 AM"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_2"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="9:00 AM"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_3"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="9:30 AM"
                app:chipCornerRadius="7dp" />

            <TextView
                android:id="@+id/TextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:fontFamily="@font/poppins_bold"
                android:text="TextView"
                android:textSize="18sp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_4"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="8:30 AM"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_5"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="8:30 AM"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_6"
                style="@style/CustomChipChoice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="false"
                android:text="8:30 AM"
                app:chipCornerRadius="7dp" />
</com.google.android.material.chip.ChipGroup>

你可以在没有图书馆的情况下实现这一目标。为此,您制作 LinearLayouts 来包装每一行。为了得到相等的 space,我们对 group 中的每个 chip 使用 android:layout_weight=".1"。如果你给它相同的 weight 它将是平衡的,反之亦然。 这就是我想出的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.chip.ChipGroup
        android:id="@+id/chipGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:chipSpacingHorizontal="40dp"
        app:singleSelection="true">
        
        <LinearLayout
            android:id="@+id/ll1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="8:30 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="9:00 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="9:30 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/TextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="10dp"
                android:text="MyTextisHere"
                android:textSize="18sp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="10:00 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="10:30 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

            <com.google.android.material.chip.Chip
                android:id="@+id/chip_6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:layout_weight=".1"
                android:checked="false"
                android:text="11:00 AM"
                android:textAlignment="center"
                app:chipCornerRadius="7dp" />

        </LinearLayout>
    </com.google.android.material.chip.ChipGroup>
</RelativeLayout>

结果: