Как добиться того, чтобы количество фишек осталось за пределами фиксированного размера chipGroup - PullRequest
1 голос
/ 05 мая 2020

Я использую ChipGroup во фрагменте для размещения записей, которые я выбрал из списка

 <com.google.android.material.chip.ChipGroup
                android:id="@+id/cgGroup"
                android:layout_width="match_parent"
                android:layout_height="@dimen/bounds_xxl"
                android:layout_gravity="center"
                android:layout_marginStart="@dimen/bounds_l"
                android:layout_marginTop="@dimen/bounds_l"
                android:layout_marginEnd="@dimen/bounds_l"
                android:background="@drawable/item_grey_box"
                android:drawableEnd="@drawable/ic_pick_icon"
                android:focusable="false"
                android:paddingEnd="@dimen/bounds_m"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/tvLabelGroup"
                bind:bindFilterViewModel="@{viewModelFilter}"
                bind:onClick="@{fragmentFilter}"
                tools:ignore="RtlSymmetry" />

Поскольку моя высота ChipGroup будет фиксированным размером, если я добавлю больше представлений Chip в ChipGroup, чем может поместиться, тогда будут показаны только первые несколько, а остальные останутся скрытыми. Итак, я хочу получить количество этих скрытых фишек, чтобы показать текстовую метку «еще +5» под ChipGroup. Я попробовал:

 var invisibleElements = 0
            chipGroup.forEach { chip ->
                if (!(chip as Chip).isVisible) {
                  invisibleElements++
                }
            }

, но потом понял, что никогда не делал эти чипы невидимыми. На самом деле по умолчанию для них установлено значение View.VISIBLE, но ChipGroup не может показать их все. Я не хочу, чтобы моя ChipGroup прокручивалась или что-то в этом роде, мне просто нужен какой-то chipGroup.hiddenChildCount метод

...