Android Studio 1.1.0 で Navigation Drawer 付きの Activity を作った場合に、左上のアイコンを回転させるようにする


事象

Navigation Drawer 付きの Activity を作りたいときは、

このウィザードを使うと、テンプレートが自動で生成されるので便利ですよね。

ですが、生成されたコードをそのまま実行すると、次のようになります。

赤い丸で囲んだ部分に注目して欲しいのですが、ドロワーを開閉しても ≡ から ← へアイコンが変わるアニメーションがされません。それどころか、アイコンは初めから ← のままじゃありませんか!

対応

そこで、ドロワーの開閉時に ≡ から ← へアイコンがアニメーションするように、コードを少し書き換えてみましょう。

  1. NavigationDrawerFragment.java の import 群の中から android.support.v4.app.ActionBarDrawerToggle を探して、 v4 の部分を v7 へ書き換えます。これにより、非推奨クラスの警告も解消されます。
  2. ActionBarDrawerToggle の生成部分を書き換えます。(後述)
  3. 完了。

ActionBarDrawerToggle 生成部分の書き換え

アイコンを指定する第 3 引数を削除します。

元のコード:

NavigationDrawerFragment.java

        mDrawerToggle = new ActionBarDrawerToggle(
                getActivity(),
                mDrawerLayout,
                R.drawable.ic_drawer,
                R.string.navigation_drawer_open,
                R.string.navigation_drawer_close

書き換え後のコード:

NavigationDrawerFragment.java

        mDrawerToggle = new ActionBarDrawerToggle(
                getActivity(),
                mDrawerLayout,
                R.string.navigation_drawer_open,
                R.string.navigation_drawer_close

これで、左上のアイコンがアニメーションするようになります。


 

以上です。