java – 保存WebView的状态并重新加载位置
|
我知道有很多关于这个问题,但他们似乎都老了,不再工作了 – 至少对我来说.我试图在用户退出或重新加载应用程序后保存网页视图的位置.我知道这个代码可以用来保存和加载Webview: @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
myWebview.saveState(outState);
}
并在onCreate: if (savedInstanceState != null) {
myWebview.restoreState(savedInstanceState);
}
但是,在Android开发者Webview页面中,它说明了关于saveState的以下内容: “保存在onSaveInstanceState(Bundle)中使用的此WebView的状态请注意,此方法不再存储此WebView的显示数据.如果restoreState(Bundle)未被调用,以前的行为可能会潜在泄漏文件. 链接 – https://developer.android.com/reference/android/webkit/WebView.html 如果我错了,这是支持工作的,那么可能是我实现另一个功能来保存WebView中显示的页面的微调框选择,并以与上面显示的非常相似的方式加载.也许使用两者不允许WebView的位置被加载,只有页面?当用户重新加载应用程序时,我目前正在保存哪些HTML页面加载到WebView中. 我的创建: if (savedInstanceState != null){
mySpinner.setSelection(prefs.getInt("spinnerSelection",0));
}
我的onSaveInstance状态: @Override
public void onSaveInstanceState(Bundle savedInstanceState){
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getBaseContext());
SharedPreferences.Editor editor = getPrefs.edit();
values = Integer.parseInt(getPrefs.getString("pref_Sections","1"));
switch (values) {
case 1:
int selectedPosition1 = mySpinner.getSelectedItemPosition();
editor.putInt("spinnerSelection1",selectedPosition1);
editor.commit();
break;
case 2:
int selectedPosition2 = mySpinner.getSelectedItemPosition();
editor.putInt("spinnerSelection2",selectedPosition2);
editor.commit();
break;
}
super.onSaveInstanceState(savedInstanceState);
}
有没有人对此问题有任何反馈意见,还是仅仅在Android Developer WebView中所描述的不再工作?我正在考虑一个数学解决方案,但是在这个时刻,我的专业知识是有限的,我必须更多地了解(加上我不喜欢数学一般!) 感谢所有回复! 解决方法您可以使用 getScrollY()获取您的Webview的垂直位置.将其保存在onSaveInstanceState中然后,使用scrollTo(x,y)恢复位置: yourWebview.scrollTo(0,savedYPosition); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
