有时候使用ScrollView,里边控件比较多的时候,打开界面,会滑到底部,如果要设置滑动到顶部,一般有两种方法
1.使用fullScrol(),scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部
需要注意的是,该方法不能直接被调用
因为Android很多函数都是基于消息队列来同步,所以需要一部操作,
addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以会失败
应该通过handler在新线程中更新
scrollView.post(new Runnable() {
@Override
public void run() { scrollView.fullScroll(ScrollView.FOCUS_UP);
}
});
2.如果ScrollView控件上方有其他控件,则可以设置焦点,滚动条就可以滑动到顶部
//让progressbar获得焦点,滚动条到顶部
progressbar.setFocusable(true);
progressbar.setFocusableInTouchMode(true);
progressbar.requestFocus();