曾几何时,我使用他们的实现,但我读了Android文档后,我意识到他们的大部分代码是毫无意义的,因为注册配置更改(在清单中)意味着您的活动不会被销毁它通常是。
长话短说,你不需要使用一个FrameLayout
作为你的webView的容器,你可能不需要onConfigurationChanged
等。如果我得到一些时间,我会张贴一些代码作为例子。
现在,请确保您在您的清单文件,因为在方向改变装置下面的
android:configChanges="keyboard|keyboardHidden|orientation"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
,而不是可能会得到一个屏幕尺寸的变化
编辑这就是我所做的(从我的一个项目中删除,所以我可能错过了小细节)
在AndroidManifest.xml
<activity android:name=".Activities.WebWrapperActivity"
android:theme="@android:style/Theme.NoTitleBar"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
web_wrapper_activity_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView android:id="@+id/web_wrapper_activity_web_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbarStyle="outsideOverlay"/>
</LinearLayout>
的活性(或它的一部分)
public class WebWrapperActivity extends Activity {
private WebView _webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_wrapper_activity_layout);
init();
}
private void init() {
_webView = (WebView) findViewById(R.id.web_wrapper_activity_web_view);
_webView.setScrollbarFadingEnabled(true);
_webView.getSettings().setLoadsImagesAutomatically(true);
_webView.getSettings().setJavaScriptEnabled(true);
_webView.getSettings().setAllowFileAccess(true);
_webView.getSettings().setSavePassword(false);
_webView.getSettings().setPluginState(WebSettings.PluginState.ON);
_webView.loadUrl(“http://www.google.com”);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
_webView.saveState(outState);
}
}
正如我前面提到的,可能不需要onConfigurationChanged
如果您的webView是活动中的唯一视图。
如果您有问题,请告诉我