我有一个 Android 应用程序,布局有横向和纵向两种。
在一些 Activity 中有很多输入和选择,即使我旋转手机我也想保留它们。
我将其添加到 list 中的 Activity
中:
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
当从纵向旋转到横向时,输入保持不变,一切看起来都很好,除了我的 ActionBar
的大小/文本大小。它不会改变。如果我在横向模式下启动一个 Activity
,文本会变小,但在旋转回纵向模式时当然不会变大。
有没有办法重绘ActionBar
(比如在onConfigurationChanged()
中)或轻松保留我的所有输入。
最佳答案
在这种情况下使用 configChanges
是非常糟糕的做法。
是的,它会在方向改变时保留你的输入和状态,但是你的 Activity
可以因为其他原因重新创建,例如当你的应用程序在后台并且操作系统决定终止时它以回收内存,然后您导航回它。
当您重新打开您的应用程序时,操作系统将尝试重新创建您离开时的 Activity
,但会失败(很可能会导致崩溃)。
不使用 configChanges
属性,您应该将您的内容保存在 onSaveInstanceState()
中,并从 中的
.Bundle
恢复它onCreate()
查看 developer's guide关于这个话题。
关于android - 在 Android 中手动重绘 ActionBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846765/