2013-06-16 2 views
2

내 응용 프로그램에서 jfeinstein으로 만든 슬라이딩 메뉴를 구현하려고합니다. 달성하고자하는 동작은 뒤로 버튼을 누르고 메뉴가 표시되지 않으면 표시된다는 것입니다. 이것은 잘 작동합니다. 그러나 메뉴가 표시 될 때 뒤로 버튼을 누르면 현재 활동이 완료됩니다. 대신 슬라이딩 메뉴가 다시 닫히는 현상이 발생합니다. Android : SlidingMenu (jfeinstein)가 표시 될 때 활동 완료

은 onBackPressed 내가 덮어 쓰기 한 설명 동작을 달성하기

@Override 
public void onBackPressed() 
{ 
    SlidingMenu sm = getSlidingMenu(); 
    if(!sm.isMenuShowing()) 
    { 
     sm.showMenu(); 
    } 
    else 
    { 
     finish(); 
    } 
} 

을하지만 곧 슬라이딩 메뉴가 onBackPressed 더 이상 호출되지 않습니다 게재되고있다. SlideFragmentActivity를 사용하여 다시 버튼을 누르면 조각 히스토리 스택이 튀어 나오게됩니다.

아무도이 문제를 해결하는 방법을 알고 있습니까?

답변

6

SlidingMenu 코드를 탐색 한 후 onKeyUp이 SlidingFragmentActivity에 겹쳐 쓰여 있음을 발견했습니다. 따라서 이동 작업은 onKeyUp을 재정의하는 것입니다.

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) 
{ 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     SlidingMenu sm = getSlidingMenu(); 
     if(sm.isMenuShowing()) 
     { 
      finish(); 
      return true; 
     } 
    } 
    return super.onKeyUp(keyCode, event); 
}