我的应用程序 - 当屏幕旋转和我的活动回到第一个 1 时,带有 WebView 的活动会自动刷新。
示例:当我从 A->B 或 BC 切换时,WebView 处理 3 活动(A,B,C),然后当屏幕旋转时它将返回到 A。
我的问题:我们如何让活动保持活动屏幕旋转?
我的应用程序 - 当屏幕旋转和我的活动回到第一个 1 时,带有 WebView 的活动会自动刷新。
示例:当我从 A->B 或 BC 切换时,WebView 处理 3 活动(A,B,C),然后当屏幕旋转时它将返回到 A。
我的问题:我们如何让活动保持活动屏幕旋转?
解决这个问题的方法不止一种。
最简单的方法是在清单中添加android:configChanges="orientation|screenSize"
相关内容。Activity
通过设置此标志,您可以告诉 Android 不要破坏Activity
并且您将自己处理所有方向更改(如果有)。
更现代的方法是将WebView
a 放入内部并使用标志Fragment
使其保留其实例。setRetainInstance(true)
主机Activity
仍然会在方向更改时被破坏,但Fragment
包含主机将被WebView
简单地分离并重新连接,而无需重新创建自身。您可以在 API 演示中找到此功能的示例。请记住,支持库提供了一个 pre-Honeycomb 兼容的片段实现,所以不要被“常规” Fragment
类的 API 级别所迷惑。
突出显示@kirgy 评论,如果您的 API > 3.2,则必须添加 orientation|screenSize
到清单中,在某些情况下,如果没有它,它将无法工作。
添加android:configChanges="orientation"
到您的清单文件以防止在屏幕方向更改时重新启动。
喜欢::
<activity android:name=".MyActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name">
有关一些参考资料,请参阅此内容。