整理したものはTech sheetsにあるよ

2017年2月2日木曜日

[Android]BottomNavigationViewの選択状態を変更する

こんにちはー!

Androidアプリを書いてるみんなは、BottomNavigationViewを上手に使えてるかな?
今日はそのBottomNavigationViewに関するおはなしー!

BottomNavigationViewはidをつけても選択状態は保存してくれないんだ。(support v25.1.1で確認)
なので、Viewの再生成時は自分で選択状態を戻さないといけないね。

BottomNavigationViewの選択状態を変更するには、次の2通りがあるよ
  • setChecked(true)を使う方法
  • performClick()を使う方法

setChecked(true)を使う方法

こちらは選択状態「だけ」を変更するよ。Viewの状態復元にはこちらがいいかな?

Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(position);
menuItem.setChecked(true);

performClick()を使う方法

こちらは項目をタップしたのと同じ動作になるよ。findViewById()でViewがとれるのはたまたまな気はするけど。。。

Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(position);
bottomNavigationView.findViewById(menuItem.getItemId()).performClick();

今回のサンプルをgithubで公開したので、動かしてみてねー!