0

我怎样才能保留滚动视图的位置?

当我单击滚动视图中的按钮时,会打开一个 webview(它在不同的活动中),然后当我们按下后退按钮时,滚动视图从顶部开始。但我想保留滚动视图的位置,我该怎么做?

我尝试使用它,但效果很好。

scrollView.scrollTo(0, 200);

在 onResume

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    scrollView.scrollTo(0, position);
}
4

3 回答 3

2

在你的尝试这种方式OnResume()

scrollView.post(new Runnable() {
         public void run() {
                scrollView.scrollTo(0, position);
         }
 }); 
于 2013-07-10T10:13:57.320 回答
1

您应该在 Activity_Pause 的进程全局变量中记住 ScrollView.ScrollPosition 的值,并在 Activity_Resume 中恢复该值。

于 2013-07-10T10:07:53.747 回答
1

接受的解决方案有效,但我有一些使用它的视觉错误。在滚动到所需位置之前,我可以看到 ScrollView 的顶部。

我最终使用了 OnPreDrawListener 并且效果很好。

scrollView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw() {
        scrollView.scrollTo(0, position);
        mView.getViewTreeObserver().removeOnPreDrawListener(this);
        return true;
    }
});
于 2015-07-06T10:52:35.233 回答