概要
ActionBarDrawerToggleを使用してNavigationDrawerを実装すると開閉時にハンバーガーボタンにアニメーションが付いてしまいますが、NavigationDrawerをToolbarに被せていると、このアニメーションがビミョーな感じになってしまいます。
今回はこのビミョーな感じになってしまう開閉時アニメーションを無効にする方法を紹介します。
方法
以下のように、onDrawerSlide
の第二引数に 0
を渡してあげるだけ。
SampleActivity.java
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
actionBarDrawerToggle.onDrawerSlide(drawerView, 0);
}
これでアニメーションを無効にすることができます。
補足
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);
}