簡體   English   中英

禁用漢堡包箭頭動畫

[英]Disable hamburger to arrow animation

我正在嘗試使用android v7支持庫實現雙抽屜布局。 我在左側(Gravity.START)側有一個導航抽屜,在右側(Gravity.END)側有一個通知抽屜。 問題是我需要操作欄中的漢堡包在拉出通知抽屜時保留漢堡包,但如果拉出導航抽屜,則保持動畫並更改為箭頭。 目前,當任何一個被拉出時,它會變為箭頭。 我通過覆蓋onDrawerSlide(View, float)成功禁用了動畫,如果View是導航抽屜,則只調用super.onDrawerSlide(View, float)如果View是通知抽屜, 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
    }
}

但是,一旦通知抽屜完全打開,圖標仍會變為箭頭。 知道如何禁用此更改嗎?

除了處理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
    }
}

從支持v7版本25.3.0開始,您可以禁用動畫

yourActionBarDrawerToggle.setDrawerSlideAnimationEnabled(false);

以上接受的答案對我不起作用,但下面的答案不適用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM