Я провел день на этом:
Я использую обычную панель инструментов.
- в MainActivity. java:
@Override
protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_toolbar_main, menu);
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.test1:
test1();
return true;
case R.id.test2:
test2();
return true;
default:
return super.onOptionsItemSelected(item);
}
- menu_toolbar_main . xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:support="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/test1"
android:title="@string/toolbar_test1"
support:showAsAction="always" />
<item
android:id="@+id/test2"
android:title="@string/toolbar_test2"
support:showAsAction="never"/>
</menu>
У меня есть разные элементы, и некоторые из них появляются во всплывающем меню (поддержка: showAsAction = "never").
Моя проблема: если я открываю всплывающее меню и поворачиваю экран, я получаю исключение WindowLeaked.
E / WindowManager: android. view.WindowLeaked: активность com.test.MainActivity вытекла из окна android .widget.PopupWindow $ PopupDecorView ...
- Я пытался скрыть всплывающее меню в onPause (), onStop, onDestroy , но он не работает ...
Примечание. Единственный ответ, который я нашел в Inte rnet, - это android: configChanges = "Ориентация". Но я не хочу этого делать.
Спасибо!