24

我的应用程序 - 当屏幕旋转和我的活动回到第一个 1 时,带有 WebView 的活动会自动刷新。

示例:当我从 A->B 或 BC 切换时,WebView 处理 3 活动(A,B,C),然后当屏幕旋转时它将返回到 A。

我的问题:我们如何让活动保持活动屏幕旋转?

4

3 回答 3

48

解决这个问题的方法不止一种。

最简单的方法是在清单中添加android:configChanges="orientation|screenSize"相关内容。Activity通过设置此标志,您可以告诉 Android 不要破坏Activity并且您将自己处理所有方向更改(如果有)。

更现代的方法是将WebViewa 放入内部并使用标志Fragment使其保留其实例。setRetainInstance(true)主机Activity仍然会在方向更改时被破坏,但Fragment包含主机将被WebView简单地分离并重新连接,而无需重新创建自身。您可以在 API 演示中找到此功能的示例。请记住,支持库提供了一个 pre-Honeycomb 兼容的片段实现,所以不要被“常规” Fragment类的 API 级别所迷惑。

于 2012-06-07T01:12:37.137 回答
10

突出显示@kirgy 评论,如果您的 API > 3.2,则必须添加 orientation|screenSize到清单中,在某些情况下,如果没有它,它将无法工作。

于 2014-02-16T12:57:40.327 回答
5

添加android:configChanges="orientation"到您的清单文件以防止在屏幕方向更改时重新启动。

喜欢::

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

有关一些参考资料,请参阅此内容。

于 2012-06-07T01:13:14.137 回答