当我旋转屏幕时,网页重新加载,但没有我的原始标题。
我正在使用以下命令恢复webview状态:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState == null) {
// Restore the state of the WebView
// webView.getRefreshableView().restoreState(savedInstanceState);
webView.loadUrl("my_url");
} else {
webView.restoreState(savedInstanceState);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
webView.saveState(outState);
}对解决方案有什么想法吗?我真的很想恢复状态,因为它包含了所有的网页历史记录,但我需要当页面重新加载时的标题!
发布于 2013-07-18 01:52:34
我用这个解决方案解决了这个问题:http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/
它现在不会重新加载页面,只是重新渲染标题和包含的内容,web历史记录也是完好无损的。
建议的here
我对它进行了修改,以便在这里使用片段和片段:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.web_fragment, null);
//webContainer = () view.findViewById(R.id.web_container);
initUI(view);
setupWebView();
return view;
}
protected void initUI(View view)
{
// Retrieve UI elements
webViewPlaceholder = ((FrameLayout)view.findViewById(R.id.webViewPlaceholder));
// Initialize the WebView if necessary
if (webView == null)
{
// Create the webview
webView = new JSWebView(getActivity());
webView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
// Load the URLs inside the WebView, not in the external web browser
webView.setWebViewClient(new WebViewClient());
// Load a page
webView.loadUrl("http://someinitialurl.com");
}
// Attach the WebView to its placeholder
webViewPlaceholder.addView(webView);
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
if (webView != null)
{
// Remove the WebView from the old placeholder
webViewPlaceholder.removeView(webView);
}
super.onConfigurationChanged(newConfig);
// Reinitialize the UI
initUI(getView());
}https://stackoverflow.com/questions/17706136
复制相似问题