В настоящее время вы заменяете tags
в вашей forEach
петле держателя. У вас есть только один держатель, и вы продолжаете обновлять его до окончания цикла;по этой причине у вас есть последний chip/tag
Если вы имеете в виду ChipGroup Материалов.
ChipGroup chipGroup = new ChipGroup(parentView.getContext());
String[] genres = {"Thriller", "Comedy", "Adventure"};
for(String genre : genres) {
Chip chip = new Chip(parentView.getContext());
chip.setText(genre);
chipGroup.addView(chip);
}
Я полагаю, вы должны использовать RecyclerView
как я вижу держатель в вашем фрагменте.
Ниже приведена иерархия представлений;Я предполагаю, что вы пытаетесь достичь;если нет, то вы можете использовать ту же логику для перемещения по этим частям
- RecyclerView
- Каждый элемент / представление
- Теги - множественные теги с использованием
FlowLayout
- Добавление нескольких отображаемых тегов
Вам необходимо bind
каждый элемент в RecyclerView.
@Override
public void onBindViewHolder(final YourViewHolder holder, final int position) {
...
// assuming you have FlowLayout in recyclerview view item
// do add holder pattern to flowlayout as well
fillAutoSpacingLayout(card.getTags(), holder.flowLayout);
}
Здесь я FlowLayout используется для добавления фишек или тегов внутри каждого представления RecyclerView.
Привязка каждого элемента / представления внутри onBindViewHolder:
private void fillAutoSpacingLayout(ArrayList<String> tags, FlowLayout flowLayout) {
for (String tag : tags) {
TextView textView = buildLabel(tag);
flowLayout.addView(textView);
}
}
private TextView buildLabel(String text) {
TextView textView = new TextView(this);
textView.setText(text);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
textView.setPadding((int)dpToPx(16), (int)dpToPx(8), (int)dpToPx(16), (int)dpToPx(8));
textView.setBackgroundResource(R.drawable.label_bg);
return textView;
}
private float dpToPx(float dp){
return TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}
Более того, вы можете обратиться кэто ТАК вопрос , как он на тех же строках.