android判断scrollview滚动到底和滚动到右的问题
第一步,获取子view的宽度
scrollview有且只有一个子view 调用 ScrollView的getChildAt方法获取子view
View view = (View) ScrollView.getChildAt(ScrollView.getChildCount() - 1);
子view的宽度 subViewWidth
int subViewWidth = view.getRight();
第二步,获取scrollview的滚动位置
if(如果要判断 滚动到底){
int y = ScrollView.getScrollY();
}else{
滚动到右
int x = ScrollView.getScrollX();
}
第三步,判断
当subViewWidth - y - ScrollView.getHeight() == 0则表示滚动到了最下边
当subViewWidth - x - ScrollView.getWidth() == 0则表示滚动到了最右边
这些判断该如何触发呢,为 ScrollView设置setOnTouchListener吧
获取结果为0 ,应该是因为你在onCreat方法中获取的值,在onCreat方法回调时,
View界面还没有绘制完成,你此时获取的值当然就是0了,你可以复写下onWindowFocusChanged方法,
在该方法中进行获取,这样子拿到的值就不是0了。
第一步,获取子view的宽度
scrollview有且只有一个子view 调用 ScrollView的getChildAt方法获取子view
View view = (View) ScrollView.getChildAt(ScrollView.getChildCount() - 1);
子view的宽度 subViewWidth
int subViewWidth = view.getRight();
第二步,获取scrollview的滚动位置
if(如果要判断 滚动到底){
int y = ScrollView.getScrollY();
}else{
滚动到右
int x = ScrollView.getScrollX();
}
第三步,判断
当subViewWidth - y - ScrollView.getHeight() == 0则表示滚动到了最下边
当subViewWidth - x - ScrollView.getWidth() == 0则表示滚动到了最右边
这些判断该如何触发呢,为 ScrollView设置setOnTouchListener吧
获取结果为0 ,应该是因为你在onCreat方法中获取的值,在onCreat方法回调时,
View界面还没有绘制完成,你此时获取的值当然就是0了,你可以复写下onWindowFocusChanged方法,
在该方法中进行获取,这样子拿到的值就不是0了。