每次屏幕方向改变时,Android 选项菜单都会关闭

标签 android contextmenu orientation

出于某种原因,每次更改屏幕方向时,我的应用程序都会关闭上下文菜单(如果它是打开的)。我见过的所有应用程序在旋转屏幕后都会保持菜单打开,但我不明白为什么我的应用程序会关闭它们。

我不是自己处理配置更改,我知道在每次方向更改后都会调用我的 onCreate 方法,它根本不涉及菜单。如果您对此问题有任何见解,我将不胜感激。

最佳答案

contextMenu 消失了,因为默认情况下旋转时 android 调用 destroy() 然后调用 onCreate() 但是:

如果您不希望 Android 经历正常的 Activity 销毁和重建过程;相反,如果您想自己处理重新创建 View ,则可以在 AndroidManifest.xml 中的元素上使用 android:configChanges 属性。

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask"
    android:configChanges="orientation|keyboardHidden">
</activity>

这样当手机旋转时,contextMenu 不会关闭,因为没有调用 onCreate() 方法。

这个主题也有帮助 - Activity restart on rotation Android

关于每次屏幕方向改变时,Android 选项菜单都会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706204/

相关文章:

java - 自定义 ListAdapter 的 Hashmap 中出现空指针异常?

android - 我想删除操作栏下方的分隔线

android - 错误:(26) error: ' ' is incompatible with attribute android:icon (attr) reference

jquery - 防止右键单击动态添加的图像

javascript - 使用 JavaScript 检测点击目标?

android - 如何以指定的速率读取Android中的方向传感器数据?

Android 应用程序在方向更改期间丢失数据

android - 文件未找到异常 :/storage/emulated/0/Android

google-chrome-extension - Chrome contextMenus API ContextType

android - linearLayout 未设置为垂直方向