見出し画像

NoActionBarでBottomNavigationを実装しようとしたときにハマったこと

こんにちは、ななです
最近、夏休みということでAndroidアプリケーションの開発をちょこちょこして遊んでいるのですが(全然まだできてないよ)
BottomNavigationを使って,ActionBarなしで実装しようとしたらエラーにはまりました(;´∀`)
それに関する記事が少ないように感じたのでだすことにしました
あと自分のメモみたいなものです。わかりづらいところ多々あるかもしれませんが、ご容赦ください

ただ自信がない部分が多いので、もし何か間違いがあれば教えていただけると幸いです

エラー文

Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference

ざっくり言うとActionBar使ってないのにsetTitleが呼び出されてそんなもんないやい!みたいなエラーなんですが((ざっくりすぎる

問題の部分のコードがこんな感じです

    val bottomNavigation: BottomNavigationView = binding.bottomNavigation
    val appBarConfiguration = AppBarConfiguration(
        setOf(
            R.id.fragment_fav_list, R.id.fragment_special_day
        )
    )
    
    val navController = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
    setupActionBarWithNavController(navController.navController, appBarConfiguration)
    bottomNavigation.setupWithNavController(navController.navController)

最初書いてた時は、
BottomNavigationをいい感じに遷移させてくれる呪文だと思って書いてました((殴
(実際にNoActionBarにするまで問題なく動いてたしね…(言い訳))

よくよくエラー文みてると

    setupActionBarWithNavController(navController.navController, appBarConfiguration)

ここが原因みたいだったんですね
で、ついに「こいつって何者なんだろう?」っていう疑問がわいて…調べました(遅い)
そもそもActionBarって入っている時点で怪しいんですけどね

AndroidDevelopersのNavigationUI -setupActionBarWithNavControllerを見まして

ActionBarを設定したり,ActionBarのタイトルを自動的に更新したり((エラー文通り))してくれるみたいです

NoActionBarのBottomNavigationの実装にそもそもいらなかったのではないかという疑問がふつふつと湧いてきますよ、私は湧きました((

結論

原因のコードを丸々消すことで解決しました(;´∀`)

終わりに

関数名からどのような動きをするものなのか普段から心掛けて、
呪文だと思わずしっかり学んでいこうと思いました

ちなみに似た内容の記事?は以下の通りです
https://stackoverflow.com/questions/50545521/removing-action-bar-in-bottomnavigation-view

最後まで読んでくださり、ありがとうございます!


この記事が気に入ったらサポートをしてみませんか?