0

嗨,我有一个芯片组,我动态创建芯片并添加到芯片组。

但是,我希望芯片位于芯片组的右端,但它始终位于左侧,如此处所示。

在此处输入图像描述

我希望芯片 Text:0 和 Text:1 位于最右边。

这是我的代码:

 <RelativeLayout
     ....
         >

    <TextView

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextTitle"
        android:layout_alignBaseline="@id/chipGroup"
        android:gravity="end|bottom"
        android:layout_marginTop="16dp"
        android:layout_below="@id/toptv"
        android:textColor="@android:color/white"
        android:textStyle="bold"
        android:textSize="14sp"
        android:id="@+id/tt1"
        />

    <com.google.android.material.chip.ChipGroup
        android:id="@+id/chipGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_toRightOf="@id/tt1"
        android:layout_below="@id/toptv"
        android:textColor="@android:color/black"
        android:textStyle="bold"
        android:textSize="12sp"
        />
     </RelativeLayout>

这就是我将筹码动态添加到筹码组的方式:

    Chip chip;

    for(int i=0;i<2;i++){
        chip = new Chip(this);
        chip.setText("Text:"+i);
        chip.setChipBackgroundColorResource(android.R.color.darker_gray);
        chip.setTextColor(Color.WHITE);
        mChipGroup.addView(chip);
    }

我搜索了某些 SOF 帖子,但无法将芯片对齐到右侧。任何帮助都会非常有帮助。

4

4 回答 4

0

您需要更改您的ChipGroup组属性。这是更改的代码。

<RelativeLayout
 ....
     >

<TextView

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextTitle"
    android:layout_alignBaseline="@id/chipGroup"
    android:gravity="end|bottom"
    android:layout_marginTop="16dp"
    android:layout_below="@id/toptv"
    android:textColor="@android:color/white"
    android:textStyle="bold"
    android:textSize="14sp"
    android:id="@+id/tt1"
    />

<com.google.android.material.chip.ChipGroup
    android:id="@+id/chipGroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_toRightOf="@id/tt1"
    android:layout_below="@id/toptv"
    android:textColor="@android:color/black"
    android:textStyle="bold"
    android:gravity="end"
    android:textSize="12sp"
    />
 </RelativeLayout>

我希望这会奏效。如果没有,请RelativeLayout在您的问题上发布您的问题。

于 2019-05-17T03:44:23.080 回答
0

您可以将 scaleX=-1 添加到您的芯片组中,并且您的芯片应该有 scaleX=-1

于 2020-02-28T11:23:44.420 回答
0

我用了这个,它对我有用

添加这一行: android:layoutDirection="rtl"

        <com.google.android.material.chip.ChipGroup
            android:id="@+id/questionLayout"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layoutDirection="rtl"
            >


        </com.google.android.material.chip.ChipGroup>
于 2021-01-29T20:28:07.037 回答
0

只需更换它

 <RelativeLayout
 ....
     >

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="TextTitle"
    android:layout_alignBaseline="@+id/chipGroup"
    android:layout_toLeftOf="@+id/chipGroup"
    android:gravity="end|bottom"
    android:layout_marginTop="16dp"
    android:layout_below="@+id/toptv"
    android:textColor="@android:color/white"
    android:textStyle="bold"
    android:textSize="14sp"
    android:id="@+id/tt1"
    />

<com.google.android.material.chip.ChipGroup
    android:id="@+id/chipGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/toptv"
    android:textColor="@android:color/black"
    android:textStyle="bold"
    android:textSize="12sp"
    />
 </RelativeLayout>
于 2019-05-21T12:14:35.093 回答