37

I tried gravity="center" , foregroundGravity="center" and textAlignment="center" for ChipGroup in the XML file but it won't work. Any ideas?

This is how it looks now

4

7 回答 7

22

我尝试在Flexbox中使用 Chip ,它的工作原理是这样的。

<com.google.android.flexbox.FlexboxLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        app:flexWrap="wrap"
        app:justifyContent="center"> ... </com.google.android.flexbox.FlexboxLayout>

在此处输入图像描述

应该有更好的方法来实现这一点,但我猜这会在那里工作。

更新(2021 年):由于稳定性和缺乏来自 Google 的更新,我删除了 flexbox 依赖项,现在使用 ConstraintLayout 的 Flow 实现了相同的效果,任何使用该技术的人也许也可以考虑这一点,看看https://stackoverflow.com /a/61545990以编程方式填充它。

于 2018-08-16T22:13:46.947 回答
4

将其放入 LinearLayout 并使其重力为“center_horizo​​ntal”。然后将芯片组的 layout_width 设置为“wrap_content”。这对我有用。

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:gravity="center_horizontal">


                <com.google.android.material.chip.ChipGroup
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/langsChipGroup"
                    >

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

</LinearLayout>
于 2019-06-10T15:14:47.250 回答
4

如果您有ChipGroupin a ConstraintLayout,请使用

app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"

像这样:

<com.google.android.material.chip.ChipGroup
        android:id="@+id/chips"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
...

确保不要将该layout_width字段设置为match_parent,因为它不会那样工作。

于 2021-05-28T03:24:33.427 回答
1

这个库可以帮助你找出你的查询。请检查一下。让我知道你的想法。

ChipCloud 库最初是 fiskurgit 为一些更大的黑客马拉松项目(非常)快速构建的 Android 视图。它创建了材料“芯片”的包裹云。Play Store 上提供了他们版本的基本演示 - 我正在维护这个 fork 以获得我需要的功能。

芯片云视图

于 2018-08-20T04:56:32.427 回答
1

我正在写作,认为它会帮助某人。我有一个类似的问题。但我只有一条线。我用以下形式解决了这个问题

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <com.google.android.material.chip.ChipGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingStart="@dimen/padding"
            android:paddingEnd="@dimen/padding"
            app:singleLine="true">

            <com.google.android.material.chip.Chip
                style="@style/Widget.MaterialComponents.Chip.Entry"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <com.google.android.material.chip.Chip
                style="@style/Widget.MaterialComponents.Chip.Entry"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

//          ...

         </com.google.android.material.chip.ChipGroup>
     </HorizontalScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

如果我帮助了某人,我很高兴。

于 2020-12-24T05:30:50.017 回答
-5

将芯片组的宽度放入wrap_content,使父视图对center包含芯片组的重力。这样它就会居中对齐。

于 2018-07-26T17:09:38.870 回答
-12

请尝试以下操作:

layout_gravity="center"

希望这会帮助你。

于 2018-07-06T06:27:44.873 回答