滚动屏幕后执行操作

问题描述 投票:1回答:2

我想在屏幕水平滚动后显示一个祝酒词。滚动可以发生在屏幕上的任何地方,但我希望只有当屏幕从右向左滚动时才会出现干杯。我试过这个:

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;
           }
       });
android scrollview
2个回答
2
投票

您必须覆盖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
投票

我相信你要找的是一个滚动监听器

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
        }
    });

推荐问答