LoginSignup
30
29

More than 5 years have passed since last update.

【Android】「Toolbar」に「ドロワー(ハンバーガー)アイコン」を表示する

Last updated at Posted at 2017-11-29

意外と知られていない?

「Toolbar」に「ドロワー(ハンバーガー)アイコン」が表示されていて、ドロワーを表示すると、そのアイコンがパラパラっと回転するアプリを、たまに見掛ける。

以下、ちょうどドロワーを開こうとしているところのスクリーンショット。

画面の左上みたいな感じ。

Screenshot_2017-11-29-21-34-25.png

これ、見掛けるの、「たまに」、なんだよね。

何故だろう?

だから意外と、実装方法を知らない人が多い?のかもしれない。

 →※本記事の「コメント欄」も参照のこと

サンプルコード

Material icons - Material Design」から「≡」アイコンを取得する必要はない。

実装上で「ActionBarDrawerToggle」というのを生成して、「DrawerLayout」に対してそれを「addDrawerListener」すると、「≡」アイコンが勝手に表示される。

んで、さらに「ActionBarDrawerToggle.syncState()」をコールすることで、ドロワーの開閉とシンクロするようになって、アイコンがパラパラするようになる。

以下、Activity内の実装例。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // set layout
        setContentView(R.layout.activity_top);

        // set toolbar
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // sync drawer
        DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle actionBarDrawerToggle =
                new ActionBarDrawerToggle(
                        this, drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close);
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();

        // set navigation
        NavigationView navigationView = findViewById(R.id.navigation_drawer);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                return false;
            }
        });
    }

「ActionBarDrawerToggle」の引数が多くて、いつも覚えていられない。

1.host Activity
2.DrawerLayout object
3.Toolbar object
4.「ドロワーを開く」操作を示す文字列リソース(ユーザー補助機能用)
5.「ドロワーを閉じる」操作を示す文字列リソース(ユーザー補助機能用)

3.Toolbar」を忘れがちだ。

公式「ナビゲーションドロワーの作成」も一読しておくと、尚のこと、理解できると思う(但し、ToolbarではなくActionBarでの実現方法が記載されているので、混同しないように注意しましょう)。

(※「minSdkVersion 21:Lollipop」を前提としたサンプルコード)

サンプルアプリ

プロジェクト一式や操作動画を確認するよりも、アプリの実動作・見栄えを自らの手で触れて確認した方が、開発者として多くを得られると思っているので、以下のアプリ(=上記スクリーンショットのアプリ)を参考にしてみてほしい。

ic_launcher.png
シンプルなメモ帳は文字数もカウントする-カラーラベルや並べ替えを搭載した無料ノート-NOTEBOSS

【動作環境】
Android OS 5.0以上

Made in Japan.
© CUTBOSS
Producer & Director, Boss of the Barber.
Lead Programmer & Designer, Boss of the Barber.

header_2_ja.png

参考記事

30
29
2

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
30
29