2

我在我的 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;
}}
4

2 回答 2

2

嗯,那是因为当方向改变时,活动完成并重新启动。因此再次调用 onCreate() 并加载第一个 URL。您必须保存 webview 的状态并在方向更改时恢复它。

于 2012-08-18T09:43:24.687 回答
0

我在谈话中迟到了,但这个想法也很有趣:

http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/

基本上:

1 - 您使用 savedInstanceState

2 - 您根据您的 savedInstanceState 以编程方式创建您的 webView,这样就不会重新加载,只是倾斜时原始 webView 的精确副本。

于 2014-07-29T13:24:16.857 回答