2015-11-03 93 views
0

我使用了我在此處找到的解決方案,將Action Bar上的左按鈕作爲Drawer切換,當Backstack和Back按鈕沒有任何內容時。這裏的實施ActionBar中的抽屜/後退按鈕在後退時無法點擊

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity); 
    ButterKnife.bind(this); 
    setSupportActionBar(mToolbar); 
    final ActionBar actionBar = getSupportActionBar(); 
    if (actionBar != null) { 
     actionBar.setDisplayShowHomeEnabled(true); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
    navigateTo(R.id.menu_drawer); 
    initDrawer(); 
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, 
     R.string.main_open_menu, R.string.main_close_menu) 
    { 
     public void onDrawerClosed(View view){ 
     syncActionBarState(); 
     } 

     public void onDrawerOpened(View view){ 
     mDrawerToggle.setDrawerIndicatorEnabled(true); 
     } 
    }; 
    mOnBackStackChangedListener = 
     new android.support.v4.app.FragmentManager.OnBackStackChangedListener() { 
     @Override 
     public void onBackStackChanged() { 
     syncActionBarState(); 
     } 
    }; 
    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    getSupportFragmentManager().addOnBackStackChangedListener(mOnBackStackChangedListener); 
    } 


    private void syncActionBarState(){ 
    int backStackCount = getSupportFragmentManager().getBackStackEntryCount(); 
    mDrawerToggle.setDrawerIndicatorEnabled(backStackCount == 0); 
    if(backStackCount == 0){ 
     mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 
    }else{ 
     mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
    } 
    } 

作爲抽屜切換按鈕工作正常。當作爲後退按鈕工作時,它甚至不會觸發OnOptionsItemClickListener。我錯過了什麼?

回答

1

您已經實現setDisplayHomeAsUpEnabled()方法

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

所以你可以把它作爲described here工作,這是一個簡單的方法來做到這一點

相關問題