Android WebView中如何处理方向更改?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (146)

每次在不从源重新加载页面的情况下处理方向更改的最佳方式是什么?

提问于
用户回答回答于

这可以通过覆盖onSaveInstanceState(Bundle outState)您的活动并saveState从webview中调用来处理:

   protected void onSaveInstanceState(Bundle outState) {
      webView.saveState(outState);
   }

然后,在webview重新膨胀之后,在onCreate中恢复它:

public void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.blah);
   if (savedInstanceState != null)
      ((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState);
}
用户回答回答于

如果您不希望WebView在方向更改上重新加载,只需在Activity类中覆盖onConfigurationChanged即可:

@Override
public void onConfigurationChanged(Configuration newConfig){        
    super.onConfigurationChanged(newConfig);
}

并在清单中设置android:configChanges属性:

<activity android:name="..."
          android:label="@string/appName"
          android:configChanges="orientation|screenSize"

扫码关注云+社区

领取腾讯云代金券