Как настроить движение слушателя для просмотра

Я должен выслушать изменение позиции определенного мнения. Представление может быть где угодно, например, оно может быть элементом представления списка или представления переработчика, или оно может быть потомком просмотра прокрутки или вложенного просмотра прокрутки и т. Д. Но всякий раз, когда позиция на экране представления изменяется (всякий раз, когда х, у координаты обновляются), я должен быть уведомлен. Я старался

view.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View view, int i, int i1, int i2, int i3) {
            Log.d(TAG, "Position changed");
        }
    });

а также

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            Log.d(TAG, "Layout changed");
        }
    });

Но, похоже, не работает

Я старался GestureDetectorCompat также, но во время броска положения x, y не точны.

Есть ли решение для моей проблемы? Надеюсь, моя проблема ясна. Заранее спасибо!!

1 ответ

Решение

Я думаю, что вы можете использовать ViewTreeObserver.OnScrollChangedListener Перезвоните. Это обратный вызов, который вызывается при прокрутке чего-либо в дереве представлений. Поэтому попробуйте добавить этот слушатель для вашего представления, которое движется.

view.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
        @Override
        public void onScrollChanged() {
            // Do what you want to do when the view has been scrolled
        }
    });
Другие вопросы по тегам