LoginSignup
8
6

More than 5 years have passed since last update.

NavigationDrawer開閉時のハンバーガーボタンのアニメーションを無効にする方法

Last updated at Posted at 2016-04-26

概要

ActionBarDrawerToggleを使用してNavigationDrawerを実装すると開閉時にハンバーガーボタンにアニメーションが付いてしまいますが、NavigationDrawerをToolbarに被せていると、このアニメーションがビミョーな感じになってしまいます。
今回はこのビミョーな感じになってしまう開閉時アニメーションを無効にする方法を紹介します。

before.gif

方法

以下のように、onDrawerSlide の第二引数に 0 を渡してあげるだけ。

SampleActivity.java
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
    actionBarDrawerToggle.onDrawerSlide(drawerView, 0);
}

これでアニメーションを無効にすることができます。

after.gif

補足

ActionBarDrawerToggle#onDrawerOpened の内部でハンバーガーボタンを矢印に変える処理が入っています。

ActionBarDrawerToggle.java
@Override
public void onDrawerOpened(View drawerView) {
    mSlider.setPosition(1); // これでハンバーガーボタンを矢印に変えています
    if (mDrawerIndicatorEnabled) {
        setActionBarDescription(mCloseDrawerContentDescRes);
    }
}

NavigationDrawerをToolbarに被せない場合は onDrawerOpened にも処理を書いてあげる必要があります。

SampleActivity.java
@Override
public void onDrawerOpened(View drawerView) {
    drawerToggle.onDrawerOpened(drawerLayout);
    actionBarDrawerToggle.onDrawerSlide(drawerView, 0);
}
8
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6