Странное поведение с меню верхней панели на основе материала. Если я добавлю только верхнюю строку в макет XML следующим образом:
<FrameLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?colorPrimary"
android:theme="?attr/actionBarTheme"
android:elevation="@dimen/normal_toolbar_elevation"
app:menu="@menu/top_menu"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:contentInsetStart="@dimen/normal_content_inset" />
<ViewStub
android:id="@+id/cab_stub"
android:layout_width="match_parent"
android:layout_height="?actionBarSize" />
</FrameLayout>
и не буду ничего делать внутри кода действия, появится меню, но как только я добавлю setSupportActionBar
внутренняя активность:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbarMain)
}
меню исчезает (не панель инструментов, только кнопка с 3 точками справа). Теперь, если я добавлю onPrepareOptionsMenu
следующим образом:
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.top_menu, menu)
return super.onCreateOptionsMenu(menu)
}
меню появляется, но элементы контекстного меню появляются дважды при его открытии.
Что вызывает оба поведения (не появляется, когда используя setSupportActionBar
и показывая, но дублируя меню в onPrepareOptionsMenu
)?