2014-06-11 4 views
3

J. Feinstein 라이브러리를 사용하여 멋진 슬라이딩 메뉴를 만들었지 만 (J. Feinstein에게 감사드립니다) 슬라이딩 메뉴를 열거 나 닫을 지 여부를 알아야합니다. 일부 조건에서 슬라이딩 메뉴가 열리고 사용자가 탐색 서랍을 열고 내비게이션 서랍에서 오버레이를 만들면 ABC 작업 표시 줄을 구현했기 때문에 알아야합니다.J. Feinstein 슬라이딩 메뉴 오픈 여부 확인

문서에서 알 수 있듯이 slidingMenu.toggle()은 닫히거나 열렸는지 여부에 관계없이 자동으로 슬라이딩 메뉴의 상태를 확인할 수 있습니다 (열려있는 경우 닫히고 닫히면 닫힙니다). 하지만 내 코드는 다음을 참조하십시오.

  @Override 
      public void onDrawerOpened(View drawerView) { 
       // here i wanna check if sliding menu opened or closed 
       if(isOpened) 
        // if is opened then close the sliding menu first 
        menu.toggle(); 

       super.onDrawerOpened(drawerView); 
       if (!isAdded()) { 
        return; 
       } 

       if (!mUserLearnedDrawer) { 
        mUserLearnedDrawer = true; 
        SharedPreferences sp = PreferenceManager 
          .getDefaultSharedPreferences(getActivity()); 
        sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).commit(); 
       } 

       getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() 
      } 

슬라이딩 메뉴가 열렸는지 확인한 다음 슬라이딩 메뉴를 닫고 그 후에 탐색을하고 싶습니다. 그렇게하는 방법?

감사합니다. 당신이 메뉴 개폐 슬라이딩 확인해야하는 경우

답변

2

것은, 당신이 우는이 코드를 사용할 수 있습니다 : 내 경우에는

// Check whether sliding menu is opened or closed 
if(menu.isMenuShowing()){ 
    //Do action here 
} 

를, 그래서 여기에 제 1 및 연 다음 탐색 창 메뉴를 슬라이딩 닫아야합니다 코드 :

@Override 
public boolean onCreateOptionsMenu(Menu menuActionBar) { 
    if (!mNavigationDrawerFragment.isDrawerOpen()) { 
    getMenuInflater().inflate(R.menu.main, menuActionBar); 
    restoreActionBar(); 
    return true; 
    }else{ 
    if(menu.isMenuShowing()){ 
     menu.toggle(); 
    } 
    } 
    return super.onCreateOptionsMenu(menuActionBar); 
} 

나는이 솔루션은 다른 사람을 도움이되기를 바랍니다. Stackoverflow와 J. Feinstein에 감사드립니다.