Я хочу определить конец события прокрутки

Я хочу обнаружить конец события прокрутки scrollView. Сначала я реализую метод OnCrollChange и пытаюсь прослушать некоторые значения, если они могут помочь мне узнать конец прокрутки. Спасибо, что помогли мне.

 scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener(){
            @Override
            public void onScrollChange(View view, int i, int i1, int i2, int i3){
                Toast.makeText(getApplicationContext(),"in SCroll ------->"+i+" "+i1+" "+i2+" "+i3,Toast.LENGTH_SHORT).show();
                shadowView.setBackgroundResource(R.drawable.shadow);
                if ((i3==0)){
                    Toast.makeText(getApplicationContext()," equality ----------------------> ",Toast.LENGTH_SHORT).show();
                    shadowView.setBackgroundResource(R.drawable.trans);
                }
                else {
                   // Toast.makeText(getApplicationContext()," NO ----------------------> ",Toast.LENGTH_SHORT).show();
                }
            }

        });
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
1 715
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это поможет

scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        if (scrollView != null) {
            if (scrollView.getChildAt(0).getBottom() <= (scrollView.getHeight() + scrollView.getScrollY())) {
                //scroll view is at bottom
            } else {
                //scroll view is not at bottom
            }
        }
    }
});

Измените свой метод onScrollChanged, как показано ниже

       @Override
        public void onScrollChanged(View view, int i, int i1, int i2, int i3){
            View view = (View) getChildAt(getChildCount()-1);
            int delta = (view.getBottom()-(getHeight()+getScrollY()));
            if (delta == 0){
                // You have reached bottom of the scroll view
            }
        }
Ответ принят как подходящий

Спасибо всем вам. после нескольких тестов; я вижу, что значения int i, int i1, int i2 принимают такое же значение egual равным 0 в реальном времени, поэтому это решает мою проблему. Я не буду сейчас использовать ваши предложения, но некоторые важные идеи я узнаю из них, только читая.

Другие вопросы по теме