(2022/2/19)Android Studio ドロワーと下部ナビゲーションの組み合わせ
ナビゲーションドロワーと下部ナビゲーションの組み合わせを模索。
ドロワーのサンプルプログラムのactivity_main.xmlは以下の通り。
NavigationViewタグは、ドロワーのメインである、左からウニョっと出てくるやつ。
後ろの通常画面はinclude句のapp_bar_mainで定義している。
画面の定義なのかと思いきや、画面上部のツールバーとその下のメイン画面のセットの定義っぽい。
メイン画面は
<include layout="@layout/content_main" />
となっているので、さらにそちらを参照。
右下にメールボタンがあるけど、これは不要で、ここに下部ナビゲーションを表示したい。
一方、下部ナビゲーションのサンプルプログラムのactivity_main.xmlは以下のとおり。
ConstraintLayoutの中にBottomNavigationViewが記述されている。
content_main.xmlではConstraintLayoutの中にfragmentが記述されているので、
ここにBottomNavigationViewを追記してやればいけるのかも?
やってみる。
↑こーして。menuにエラーがあるので定義をコピー
bottom_nav_menu.xml
必要なリソースもコピーして。
ビルドは通ったので表示だけでも行けるか?と起動してみたらやっぱりエラー。
bind関係の記述何も変えてないし、当然か。
ググってたら英語サイト
Android Bottom Navigation and Navigation Drawer - Part 1
目的はばっちり合っている気がする!
サイトを上から順に眺めていると・・content_main.xmlのfragmentとBottomNavigationViewの記述順が逆になっている。
これぐらいで差は出ないだろうけど念のため・・と逆にしてみたら、起動した。
次にMainActivityのonCreate関数に以下を追記。
val navBottomView: BottomNavigationView = findViewById(R.id.bottom_navigation_view)
navBottomView.setupWithNavController(navController)
起動はするし、ドロワーからのメニュー選択は反応するけど下部ナビゲーションのメニューは反応しない状態。
もう一息だとは思うのだが・・
続く