Android如何将芯片组中的芯片居中对齐?

时间:2018-07-05 20:56:12

标签: android android-layout android-chips

我在XML文件中为ChipGroup尝试了gravity="center"foregroundGravity="center"textAlignment="center",但是它不起作用。有任何想法吗?

This is how it looks now

7 个答案:

答案 0 :(得分:1)

我尝试在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>

enter image description here

应该有更好的方法来实现这一目标,但我想这将在那起作用。

答案 1 :(得分:1)

此库可帮助您确定查询。请检查一下。让我知道您的想法。

ChipCloud库最初是一个(非常)很快就被fiskurgit删除了一些较大的hackathon项目的Android视图。它创建了材料“碎片”的包裹云。其版本的基本演示可在Play商店中获得-我正在维护该分叉,以提供所需的功能。

Chip Cloud View

答案 2 :(得分:0)

将其放入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>

答案 3 :(得分:0)

如果您在 ChipGroup 中有 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,因为那样不行。

答案 4 :(得分:-1)

您可以通过创建一个父级RelativeLayout来进行操作,并为每个芯片组使用android:layout_centerHorizontal="true",就像这样

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true">

                <TextView
                    android:id="@+id/view1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"

                    android:background="@android:color/darker_gray"
                    android:text="View1" />

                <TextView
                    android:id="@+id/view2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"
                    android:layout_toRightOf="@id/view1"
                    android:background="@android:color/darker_gray"
                    android:text="View2" />
            </RelativeLayout>
        </RelativeLayout>

答案 5 :(得分:-2)

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

答案 6 :(得分:-4)

请尝试以下操作:

layout_gravity="center"

希望这会对您有所帮助。