Android: 打开的溢出菜单在横屏旋转后没有对齐

Android: Opened overflow menu is not aligned right after landscape screen rotation

基本上,当我打开溢出菜单并旋转屏幕时,菜单会位于屏幕中间(因为它位于纵向屏幕的右端)。

我使用通常的方法来扩充菜单:

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.my_menu, menu);
}

唯一需要注意的是我隐藏了工具栏和状态栏,所以才会出现这个问题。如果不隐藏工具栏,它可以正常工作。

activity.getSupportActionBar().hide()
activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE);
        setFooterVisible(false);

所以我注意到,如果工具栏和状态栏未隐藏,菜单的行为是正确的,我只是观察菜单 open/close 并且仅当溢出菜单关闭时才隐藏工具栏和状态栏。然后菜单按预期放置。