android - 在 Android 中手动重绘 ActionBar

标签 android android-actionbar android-actionbar-compat

我有一个 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/

相关文章:

android - Appcompat v7 和 ActionBarActivity

Android ActionBar 兼容溢出菜单未在 sdk 10 上显示

android - appcompat v7 23,操作栏,透明度

java - Android万能音乐播放器在MediaItem ViewHolder中添加专辑封面

android - 如何从 onTick 方法中清除 CountDownTimer?

android - 意外的应用程序崩溃

android - 如何将我的应用程序设置为 Espresso 测试中的默认应用程序?

Android MenuItem setActionView(空)崩溃

android - 哪里有关于何时何地使用每个操作栏图标的指南?

android - 如何在android中点击ActionBar Logo