Отслеживать изменения видимости ChipGroup на экране

Стоит задача отслеживать изменения видимости ChipGroup на экране телефона. То есть когда скролишь вниз и на экране не видно ChipGroup получать событие об этом и наоборот когда стало видно.

Я смотрел в сторону viewTreeObserver ну ничего не вышло. Может кто-то знает в какую сторону смотреть?

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginStart="@dimen/default_margin"
            android:layout_marginEnd="@dimen/default_margin"
            android:orientation="vertical">

            <com.google.android.material.chip.ChipGroup
                android:id="@+id/chipGroup"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:singleSelection="true">

            </com.google.android.material.chip.ChipGroup>

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginBottom="@dimen/default_margin"
                android:overScrollMode="never" />

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>

EDIT Нашел такое решение данной задачи, осталось исправить чтоб срабатывала когда виден не весь chipGroup

    val scrollBounds = Rect()
    nestedScrollView.getHitRect(scrollBounds);

    nestedScrollView.setOnScrollChangeListener(NestedScrollView.OnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
        if (chipGroup.getLocalVisibleRect(scrollBounds)) {
            if (!chipGroup.getLocalVisibleRect(scrollBounds)
                || scrollBounds.height() < chipGroup.getHeight()
            ) {
                chip.setVisibility(true)
            } else {
                chip.setVisibility(false)
            }
        }
    });

Ответы (0 шт):