본문 바로가기
Android

스크롤 이슈 해결

by Birthmark 2020. 5. 29.

 setOnScrollChangeListener로 y좌표값 얻은 후 버튼 클릭시 스크롤뷰 height에 y좌표값을 더했더니 해결됐다.

 mScrollView.setOnScrollChangeListener(new ScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                View view = mScrollView.getChildAt(mScrollView.getChildCount() - 1);
                int diff = (view.getBottom() - (mScrollView.getHeight() + mScrollView.getScrollY()));

                stateY = mScrollView.getScrollY();
                Log.d("[ scrolling ]", "Y: " + stateY);

                if (diff == 0 ) {
                    Toast.makeText(getApplicationContext(), "一番下です。", Toast.LENGTH_SHORT).show();
                }if(mScrollView.getScrollY()==0){
                    Toast.makeText(getApplicationContext(), "一番上です。", Toast.LENGTH_SHORT).show();
                }
            }


        });
  iv_down.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                mScrollView.post(new Runnable() {
                    public void run() {

                        mScrollView.scrollTo(0, stateY +mScrollView.getHeight() );
                        stateY = mScrollView.getScrollY();
                        Log.d("[ click DOWN ]", "current Y :" + stateY);
                    }
                });

            }

        });

        iv_up.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                mScrollView.post(new Runnable() {
                    public void run() {
                        mScrollView.scrollTo(0, stateY - mScrollView.getHeight());
                        stateY = mScrollView.getScrollY();
                        Log.d("[ click UP ]", "current Y :" + stateY);
                    }
                });

            }
        });

'Android' 카테고리의 다른 글

2020/06/01 Commit  (0) 2020.06.01
2020/05/29 Commit  (0) 2020.05.29
2020/05/28 Commit  (0) 2020.05.28
2020/05/27 Commit  (0) 2020.05.27
2020/05/26 Commit  (0) 2020.05.26

댓글