android webview倾斜屏幕页面刷新

时间:2012-08-18 09:10:35

标签: android url webview tilt

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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的精确副本。