禁用右侧导航抽屉中抽屉图标的动画效果

10

我有一个双侧滑菜单

我遇到了两个问题。

1) 左侧导航菜单的图标(3条横线)会在打开或关闭右侧导航菜单时进行动画。

2) 我不知道如何添加右侧的图标并使其仅对右侧抽屉进行动画处理。


我也想知道这个。我知道你可以通过覆盖onDrawerSlide方法来防止动画,但是图标只会跳过去而不是动画。 - Chase Florell
@ChaseFlorell 你查看了ActionBarDrawerToggle源代码吗? 它是用于动画化操作栏图标的类,假设你正在按照文档中的示例操作。 复制左/右行为应该非常简单; 将图标添加到右侧可能是棘手的部分。 - Adam S
@AdamS 是的,我已经把图标放在右边了...非常简单。但是我正在进行的OnDrawerSlide重写只是防止动画...现在图标只是跳到左边。https://gist.github.com/ChaseFlorell/10519029 - Chase Florell
1个回答

19

如果抽屉是右抽屉,您需要覆盖ActionBarDrawerToggle的onDrawerSlide方法并将slideOffset设置为0。这样就会禁用右侧抽屉导航栏图像enter image description here的动画效果。

  @Override
  public void onDrawerSlide(View drawerView, float slideOffset) 
  {
        if(drawerView!=null && drawerView == rightDrawerListView){
              super.onDrawerSlide(drawerView, 0);
        }else{
              super.onDrawerSlide(drawerView, slideOffset);
        }
  }

这对我来说与Google+类似地起作用。


8
这个方法对我有用,此外我还需要在我的onDrawerOpened()方法的结尾添加super.onDrawerSlide(drawerView, 0);,以防止抽屉在动画后弹出。 - Peter
这对我也起作用了,在onDrawerOpened()的结尾添加if (drawerView != null && drawerView == navDrawRight.getView()) { super.onDrawerSlide(drawerView, 0); } - R. Campos
еҰӮжһңжҲ‘еңЁжҙ»еҠЁзҡ„onCreate()дёӯи°ғз”ЁopenDrawer(mDrawer)пјҢеӣҫж Үе°ұдјҡд»Һдҫ§йқўејҖе§ӢгҖӮжңүдәәзҹҘйҒ“еҰӮдҪ•и§ЈеҶіеҗ—пјҹ - JStephen
1
我尝试了这个。但是出现了关于super类中没有onDrawerSlide方法的错误。为什么会这样?我正在使用v7 ActionBar。我认为这就是问题所在。 - Sharikov Vladislav
尝试过了,但是右侧抽屉没有切换图标。 - eastwater

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接