问题
Hi I have a chipgroup and I dynamically create chips and add to chipgroup.
However I want the chips to be at the right end of chipgroup but it is always to the left as shown here.
I want the chips Text:0 and Text:1 to be at the right most end.
This is my code:
<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>
This is how I dynamically add chips to chip group:
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);
}
I searched certain SOF posts but wasn't able to align the chips to the right.Any help will be really helpful.
回答1:
You need to change your ChipGroup
group property. here is changed code.
<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>
I hope this will work. if not then post your RelativeLayout
on your question.
回答2:
Just Replace it
<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>
来源:https://stackoverflow.com/questions/56174608/how-to-align-android-chips-to-the-end-in-chipgroup