我在我的Android应用程序中使用webview。它成功加载网页。当我点击链接时,它会在webview中打开新页面,而不是在浏览器中打开。现在我的问题是,在倾斜屏幕时,页面会刷新并再次加载主页而不是我们之前的页面。我怎样才能克服这个问题?在此先感谢..我的代码如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.xyz.com");
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setWebViewClient(new MyWebViewClient());
}
我的webviewclient类:
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}}
答案 0 :(得分:2)
嗯,那是因为当方向改变时,活动结束并重新启动。因此,再次调用onCreate()并加载第一个URL。您必须保存webview的状态并在方向更改时恢复它。
答案 1 :(得分:0)
我在谈话的后期很晚,但这个想法也非常有趣:
基本上:
1 - 您使用savedInstanceState
2 - 您可以基于savedInstanceState以编程方式创建webView,这样就不会重新加载,只是倾斜时原始webView的精确副本。