我有一个有3个标签的tabs主机。在每个选项卡中都有一个tabs视图。当我点击一个标签时,网页视图需要“重新加载”,即使我以前在那里,它还没有被保存。有什么方法可以保存webview吗?
发布于 2012-04-21 20:13:43
这可以通过在您的活动中覆盖onSaveInstanceState(捆绑包outState)并从webview调用saveState来处理:
@Override
protected void onSaveInstanceState(Bundle outState) {
webView.saveState(outState);
super.onSaveInstanceState(outState);
}当然,在webview重新膨胀之后,在你的onCreate中恢复它:
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
WebView webview = (WebView)findViewById(R.id.webview);
if (savedInstanceState != null)
webview.restoreState(savedInstanceState);
else
webview.loadUrl(URLData)
}发布于 2015-09-30 21:38:01
restoreState从来都不可靠。到了2015年,文件接受了这一事实。(更改可能是在2014年左右对文档进行的)。这就是它现在说的。
如果在此WebView有机会构建状态(加载页面、创建后退/前进列表等)后调用它,则为
。可能会有不受欢迎的副作用。请注意,此方法不再恢复此WebView的显示数据。
saveState()的相应条目如下所示:
请注意,此方法不再存储此WebView的显示数据。
在onCreate方法中,您真正应该做的是调用webView.loadUrl()。如果您想显示最后访问的url,请参阅以下answer
如果你关心的是网页视图的重新加载、方向改变等等。
您可以将Activity设置为处理方向和keyboardHidden更改,然后仅保留WebView
不变
发布于 2013-10-09 19:26:56
或者,您可以考虑在tabHost中使用片段。当输入另一个webView时,您可以将fragment设置为隐藏,将另一个设置为显示。当您返回到前一个片段时,内容将不会被销毁。这就是我怎么做的,它对我很管用。
https://stackoverflow.com/questions/10258772
复制相似问题