Android DrawerLayout NavigationViewの時にnavigation header等にアクセスする方法

完全に覚え書きです笑

色々調べたのですが中々参考資料が見つからず、

ふと考えたら昔のプロジェクトで自分で解決したものがあったので

それを参考にメモとして残しておきます。

今機能アップデート開発中のこのアプリで詰まった部分です。

えっと、だいぶわかりにくいですが。。

Navigation Header

DrawerLayoutのNavigationViewのheader部分の

この部分にアクセスしたいときに

ちょっと特殊な参照をしているらしく、

普通にはアクセスできないんですよね。。

ユーザーに応じてアイコン変えたりとか名前変えたりとかしたいじゃないですか!

これを参照するためには

まずDrawerLayoutを取得

そこから更にNavigation Viewを取得

(ここは場合によっては直接Navigation Viewを取得でも大丈夫だと思います。)

そしてここからheaderViewを取得します。

これで後は通常通り

こんな感じに参照できるはずです!

よし、これでOK!と思ったら。。

inflateHeaderView

二つ並んでる。。

まあinflateHeaderViewなので当然か。

というわけで

動的に生成・反映するために

headerLayoutの指定は無くしてしまいましょう。

Top