我有一个简单的WebView
在Android上运行Web应用程序。问题是当我旋转手机将其更改为横向webview
重新加载并返回到开头时。
如何阻止此操作?
罗恩
答案 0 :(得分:49)
从Android 3.2(API级别13)开始,当设备在纵向和横向之间切换时,“屏幕尺寸”也会发生变化。因此,如果要在开发API级别13或更高级别(由minSdkVersion和targetSdkVersion属性声明)时由于方向更改而阻止运行时重新启动,则除了“orientation”值之外,还必须包含“screenSize”值。也就是说,你必须转发
<activity android:configChanges="orientation|screenSize">
以下是文档:http://developer.android.com/guide/topics/resources/runtime-changes.html
答案 1 :(得分:7)
可以通过覆盖您的活动中的onSaveInstanceState(Bundle outState)
并从Webview调用saveState
来解决此问题:
这blog post可能会对您有所帮助。
答案 2 :(得分:6)
将以下内容添加到AndroidManifest:
android:configChanges="orientation|keyboard|keyboardHidden"
所以看起来应该是这样的:
<activity android:name=".MyActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboard|keyboardHidden">
显然,如果您的WebView需要键盘支持,则不要包含键盘选项。
答案 3 :(得分:3)
在oncreate
之前添加@Override
protected void onSaveInstanceState(Bundle outState) {
webview.saveState(outState);
}
以这种方式编写oncreate。最终
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutname);
if (savedInstanceState != null)
{
((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState);
}
else
{
webview.loadUrl("http://www.playbuzz.org/");
}
}
在Androidmanifest下插入活动
android:configChanges="keyboardHidden|orientation"
答案 4 :(得分:2)
@Override
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}
在您的活动中添加以上方法..和
机器人:configChanges = “键盘| keyboardHidden |取向”
清单文件中的
答案 5 :(得分:1)
上述解决方案的问题是,在webview重绘内容之前,它会将屏幕呈现一段时间。
尝试使用 android:configChanges =“orientation | keyboardHidden”在AndroidManifest.xml文件中,用于显示webview的活动。这应该会有所帮助。
答案 6 :(得分:1)
添加活动
android:configChanges="keyboardHidden|orientation"