9

I have used scrollview in my Android app using activity_main.xml. The scroll is working perfectly. But the thing is i need to add a Scroll to top button so that if the user starts scrolling the button should be visible like the link below..

http://webdesignerwall.com/demo/scroll-to-top/scrolltotop.html?

I need to do this in Android..

Jessie Ka
  • 141
  • 1
  • 2
  • 4

3 Answers3

11

Use the below code to detect the top of the scroll.

final ViewTreeObserver.OnScrollChangedListener onScrollChangedListener = new
            ViewTreeObserver.OnScrollChangedListener() {

                @Override
                public void onScrollChanged() {
                    if (scrollview.getScrollY() == 0) {
                        swipeRefreshLayout.setEnabled(true);
                    } else
                        swipeRefreshLayout.setEnabled(false);
                }
            };
    scrollview.setOnTouchListener(new View.OnTouchListener() {
        private ViewTreeObserver observer;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (observer == null) {
                observer = scrollview.getViewTreeObserver();
                observer.addOnScrollChangedListener(onScrollChangedListener);
            } else if (!observer.isAlive()) {
                observer.removeOnScrollChangedListener(onScrollChangedListener);
                observer = scrollview.getViewTreeObserver();
                observer.addOnScrollChangedListener(onScrollChangedListener);
            }
            return false;
        }
    });
Tarun Gupta
  • 307
  • 2
  • 11
9
 scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
            @Override
            public void onScrollChanged() {
                if (scrollView != null) {
                    if (scrollView.getScrollY()==0) {
                        Toast.makeText(getContext(),"top",Toast.LENGTH_SHORT).show();
                    } else {

                    }
                }
            }
        });
nikhil
  • 91
  • 1
  • 3
0

This can be done in Kotlin this way

scrollView.scrollY == 0
user16217248
  • 3,119
  • 19
  • 19
  • 37
Vanya Rachel
  • 1,329
  • 1
  • 18
  • 20