Posted at

NavigationViewのmenuItemの要素を取得する

More than 1 year has passed since last update.

ナビゲーションドロワーの書くメニュー要素のViewを取得したいとするのだがこれが難しい。

ナビゲーションドロワーに通常使われるNavigationViewだが、特に各要素のViewにアクセスするメソッドは用意されていないようだ。MenuItemなら取れるけど。

customViewを設定しているわけでもないのでfindViewByIdもだめ。

と思っていたらfindViewsWithTextが使えるらしい。

val outViews = ArrayList<View>() |

navigationView.findViewsWithText(outViews, "メニュー1", View.FIND_VIEWS_WITH_TEXT)

空の配列を渡しておけばそのテキストを持つViewを配列に入れておいてくれる。