4

Android 앱에 문제가 있습니다. 활동에는 옵션 메뉴가 있습니다.하위 메뉴를 연 상태에서 방향 변경에 대한 작업이 누출되었습니다.

메뉴는 다음과 같습니다 : 첫 번째 항목을 클릭 할 때

<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> 

그래서 하위 메뉴가있다. 대화 상자처럼 보이지만이 대화 상자에 대한 참조를 얻을 수있는 방법을 찾을 수 없습니다. 장치를 돌리면 유출 된 창 오류가 있습니다. 그래서 안드로이드가 서브 메뉴를 닫지 않는 것처럼 보입니다. 이 오류를 방지 할 수있는 방법이 있습니까? 오리엔테이션 변경으로 인해 재생성 된 후 SubMenu가 사라집니다. 옵션 메뉴는 다시 열 수 있지만 하위 메뉴는 열 수 없습니다. 첫 번째 메뉴 항목에 대한 클릭을 시뮬레이션 할 수 있습니까?

미리 감사드립니다.

그리고 그런데, 나는 매니 페스트를 바꾸어 로테이션을 우회하고 싶지 않습니다.

+0

해결 방법을 찾으셨습니까? 나는 이것에 대해서도 고심하고있다. onMenuItemSelected 동안 SubMenu에 대한 참조를 가져 와서 onPause 활동 중에 subMenu.close()를 호출하려고 시도했지만 어떤 이유로 문제가 해결되지 않습니다. –

+0

나는 정확히 같은 문제가있다. 나는 해결책을 찾기 위해 돈을 낼 것이다. –

답변

0

간단한 해결책은 앱 오리엔테이션이 변경 될 때 destroying 활동 인스턴스를 방지하는 것입니다. 매니페스트에서 다음을 선언하여 수행 할 수 있습니다.

<activity android:configChanges="orientation" 
... />