4

我想用android v7支持庫實現雙抽屜佈局。我有一個左側(Gravity.START)側的導航抽屜和右側(Gravity.END)側的通知抽屜。問題是我需要操作欄中的漢堡包在通知抽屜被拉出時保留漢堡包,但保持動畫並在抽出抽屜式菜單時變爲箭頭。目前它在任何一個被拉出時變成一個箭頭。我已經成功地通過重寫onDrawerSlide(View, float),只有打電話來super.onDrawerSlide(View, float)如果視圖導航抽屜,無所事事禁用動畫如果視圖通知抽屜是這樣的:禁用漢堡到箭頭動畫

@Override 
public void onDrawerSlide(View drawerView, float slideOffset) { 
    // Make sure it was the navigation drawer 
    if(drawerView.equals(navigationDrawer)) { 
     super.onDrawerSlide(drawerView, slideOffset); 
    } 
    else { 
     // Do nothing 
    } 
} 

然而,一旦通知抽屜已經完全打開,圖標仍會變成箭頭。任何想法如何禁用此更改?

+1

嘗試做同樣的'onDrawerOpened'和'onDrawerClosed' –

+0

@EugenPechanec非常簡單的修復,實現了我一直在尋找的東西。非常感謝。作爲回答發佈,我會接受。 – steve

+0

很高興我可以幫助你,與你的應用程序祝你好運。 –

回答

4

隨着處理onDrawerSlide你需要同時處理onDrawerOpenedonDrawerClosed

@Override 
public void onDrawerOpened(View drawerView, float slideOffset) { 
    // Make sure it was the navigation drawer 
    if(drawerView.equals(navigationDrawer)) { 
     super.onDrawerOpened(drawerView, slideOffset); 
    } 
    else { 
     // Do nothing 
    } 
} 

@Override 
public void onDrawerClosed(View drawerView, float slideOffset) { 
    // Make sure it was the navigation drawer 
    if(drawerView.equals(navigationDrawer)) { 
     super.onDrawerClosed(drawerView, slideOffset); 
    } 
    else { 
     // Do nothing 
    } 
} 
+0

ActionBarDrawerToggle中沒有類似onDrawerOpened(View drawerView,float slideOffset)的方法。那麼它是如何工作的 – user1517638

+0

只要使用'onDrawerOpened(View)',我沒有在示例中使用'float slideOffset'參數。看起來這個方法由於同樣的原因而被棄用。 –

0

上述接受的答案不是爲我工作,但下面的人做

@Override 
public void onDrawerSlide(View drawerView, float slideOffset) { 
    super.onDrawerSlide(drawerView, 0); // this disables the animation 
} 
1

由於支持V7版本25.3。 0,您可以禁用動畫

yourActionBarDrawerToggle.setDrawerSlideAnimationEnabled(false);