【Menu】画面回転でメニューのアイコンが二重に生成される問題の原因

やりたいこと

画面回転時にメニューのアイコンが二重に生成されてしまう問題を修正したい。

手順

onCreateOptionsMenuでmenuをinflateする前にclearメソッドを呼んであげましょう。

override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { menu?.clear() inflater?.inflate(R.menu.menu_main_fragment, menu)
}
MEMO

clearメソッドが呼ばれないと、Menuインターフェースを継承するMenuBuilderクラスのmItemsに、既に生成されているメニューもセットされてしまいます。

結果

画面回転してもメニューのアイコンが二重に生成されなくなりました!