4

我的Android应用程序出现问题。该活动有一个选项菜单。打开SubMenu时,活动泄露了方向更改窗口

菜单如下:

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
    android:title="@string/tx_1" 
    android:id="@+id/menu_1"   
    > 
    <menu> 
     <group android:checkableBehavior="single"> 
     <item 
      android:title="@string/tx_2" 
      android:id="@+id/menu_2"  
      /> 
     <item 
      android:title="@string/tx_3" 
      android:id="@+id/menu_3"  
      /> 
     </group>   
     <item 
     android:title="@string/tx_4" 
     android:id="@+id/menu_4" 
     android:checkable="true"  
     /> 
     </menu> 
    </item> 
    <item 
    android:title="@string/tx_5" 
    android:id="@+id/menu_5" 
    />  
</menu> 

因此,有一个子菜单,当你点击的第一个项目。它看起来像一个对话框,但我找不到一个方法来获得对这个对话框的引用。 当我旋转设备时,有一个泄漏的窗口错误。所以,Android似乎没有关闭SubMenu。有没有办法来防止这个错误? SubMenu当然会在重新创建后消失,由方向更改触发。我可以重新打开选项菜单,但不能打开SubMenu。是否可以模拟点击第一个菜单项?

在此先感谢!

顺便说一下,我不想通过更改清单来绕过旋转。

+0

您是否曾经找到过解决方案?我也为此苦苦挣扎。我尝试在onMenuItemSelected过程中抓取对SubMenu的引用,并在活动onPause期间调用subMenu.close(),但出于某种原因不能解决问题。 –

+0

我有完全相同的问题。我会付钱找到解决办法。 –

回答

0

简单的解决方案是在App Orientation更改时防止破坏活动实例。 您可以在清单中声明以下内容:

<activity android:configChanges="orientation" 
... /> 
相关问题