Я использую 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
метод