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 |
댓글