Выполнить действие после прокрутки экрана - PullRequest
1 голос
/ 12 апреля 2019

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

HorizontalScrollView headerScrollView = new HorizontalScrollView(this);

       headerScrollView.setOnTouchListener(new View.OnTouchListener() {

           @Override
           public boolean onTouch(View v, MotionEvent event) {
               Toast.makeText(Verbs.this, "The screen has been scrolled", Toast.LENGTH_LONG).show();
               return true;
           }
       });

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Вы должны переопределить метод setOnScrollChangeListener, чтобы обнаружить прокрутку справа налево.

HorizontalScrollView headerScrollView = new HorizontalScrollView(this);
    headerScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            if (scrollX > oldScrollX) {
                Toast.makeText(Verbs.this, "moved right to left", Toast.LENGTH_LONG).show();
            }
        }
    });
0 голосов
/ 12 апреля 2019

Я считаю, что вы ищете scrollListener

HorizontalScrollView headerScrollView = new HorizontalScrollView(this);
headerScrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
        @Override
        public void onScrollChanged() {
            int scrollY = rootScrollView.getScrollY(); // For ScrollView
            int scrollX = rootScrollView.getScrollX(); // For HorizontalScrollView
            // DO SOMETHING WITH THE SCROLL COORDINATES
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...