【发布时间】:2012-01-25 04:29:56
【问题描述】:
在 Android 中,当屏幕方向改变(横向和纵向之间)时,onCreate 方法被调用,如果处理不当,将重新创建整个活动,结果过于简单地改变布局并保留所有相同的信息。
我知道一些解决此问题的方法,但我对最有效的方法感兴趣。
1) 告诉清单我将通过覆盖 onConfigurationChanged() 方法并将其留空来处理方向更改。
2) 覆盖onSaveInstanceState() 并将数据保存在此处以便在onCreate() 中重新填充
3) 覆盖onPause(),这将创建一个数据包并将其发送到onSaveInstanceState()
显然,这些都是选项,但哪一个是更好的做法(小、中、大量数据)
谢谢
【问题讨论】:
-
一种方法是您可以停止重新创建 Activity 并在纵向和横向布局之间切换。检查我的答案here
-
虽然这种方式看起来效果很好,但我希望能够通过使用
res/layout-land文件夹来利用布局中的自动更改。当然,除非对于一个简单的活动来说开销太大。 -
嗯,这会自动改变它的布局,你只需要改变代码中的内容视图就可以了。
标签: android rotation screen screen-orientation orientation-changes