手动重绘Android中的ActionBar

时间:2016-08-09 09:20:25

标签: android android-actionbar android-actionbar-compat

我有一个Android应用程序,横向和纵向都有布局。

在一些活动中有很多输入和选择,即使我转动手机,我也希望保留它们。

我将此添加到我的清单中的Activity

android:configChanges="orientation|screenSize|keyboardHidden|keyboard"

从纵向旋转到横向时保持输入,除了ActionBar的尺寸/文本大小外,一切看起来都很好。它没有改变。如果我在横向模式下启动Activity,则文本尺寸较小,但当旋转回纵向模式时,当然不会变大。

有没有办法,重新绘制ActionBar(如onConfigurationChanged()或其他内容)或轻松保留所有输入。

1 个答案:

答案 0 :(得分:1)

在这种情况下使用Unittest.main是非常糟糕的做法。

是的,它会在方向更改时保留您的输入和状态,但由于其他原因可以重新创建configChanges,例如当您的应用在后台并且操作系统决定将其删除以重新开始时记忆然后你导航回去。

当您重新打开应用程序时,操作系统将尝试在您离开时重新创建Activity,但将无法执行此操作(最有可能导致崩溃)。

您应该将您的内容保存在Activity中,而不是使用configChanges属性,并将其从onSaveInstanceState()中的Bundle恢复。

查看有关此主题的developer's guide