Navigation Drawer の概要

マテリアルデザインの重要な要素として、ナビゲーション・ドロワー (Navigation Drawer) があります。

Navigation Drawer はモバイル画面でみたときは、画面左側からスライドしてくることで表示できるメニューになります。

デスクトップでは常に表示されて、左側にピン止めされたような形になります。

ドロワー上部には何らかのヘッダーがあり、その内容部分にはメインコンテンツの内容を示すメニュー等が表示されます。

Android Studio のプロジェクトのテンプレートにも、Navigation Drawer があります。これを用いてナビゲーションドロワーを用いたアプリケーションの開発を進めることは可能です。 しかしながら、様々なコンポーネントが組み合わされているために、どこに何があるか、そしてそれがなぜ存在するか、パッと見て分かりにくいです。

この記事では、レイアウトリソースやメニューリソースがどこにどう絡むのか、概要を見てみましょう

Navigation Drawer プロジェクトの作成

Android Studio のプロジェクトテンプレートから、Navigation Drawer を選択します。

ナビゲーションドロワー

ここで作成されたプログラムを見てみましょう。

デフォルトで作成される MainActivity では、setContentView でレイアウトリソース activity_main.xml を取り込みます。

activity_main.xml から複数入れ子でリソースがインクルードされているので、これを書き下すと次のようになります。

ナビゲーションドロワー

ルート要素は DrawerLayout です。これはサポートライブラリで実装されている android.support.v4.widget.DrawerLayout です。ここで子要素は CoorinatorLayout と NavigationView です。

CoordinatorLayout は Android Design Support Library でサポートされています。

CoordinatorLayout 内には三つの子要素があり、 それぞれ役割はツールバーメインの内容 (ここでは TextView だけ)フローティング・アクション・ボタンです。

ツールバー

ツールバーは、ドロワーの開閉を行うボタンが左にあり、中央にタイトル、右側にオプションメニューがあります。

ナビゲーションドロワー

ドロワーの開閉を行うボタンは ActionBarDrawerToggle を作成することで自動的に表示されます。

また、オプションメニューはアクティビティの onCreateOptionsMenu でメニューリソースを設定することで作成します。

ナビゲーションビュー

DrawerLayout の子要素の二つ目は、NavigationView です。

NavigationView は android.support.design.widget.NavigationView で、名前から分かるようにこちらも Android Design Support Library でサポートされています。

ナビゲーションドロワー

NavigationView の属性としてヘッダーのレイアウトリソースと、メニューリソースを指定することで、好みのドロワーを作成することが可能になります。

» 以上を踏まえて、基本的なナビゲーションドロワーを実装した例については、 Navigation Drawer の基本的な実装方法 をみてください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Android 開発入門