繁体   English   中英

旋转android设备时如何保持菜单项组打开

[英]How do I keep a menu item group open when rotating android device

我已经处理了Android清单中的屏幕旋转配置更改,该更改适用于以对话框为主题的活动,但是对于这些菜单组,当我旋转屏幕时,在选择菜单项(在onOptionsItemSelected中)后打开的菜单组仍然关闭。 我可以在onConfigurationChanged中处理这些吗? 或者,还有更好的方法? 我已经附上了打开子菜单的代码。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   if (item.getGroupId() == R.id.submenu) {
      if (item.getItemId() == this.submenu) {
         return true;
      }
      this.value = item.getItemId();
      item.setChecked(true);
      //do something with value
      return true;
   }
   //...
   return super.onOptionsItemSelected(item);
}

您将需要覆盖

    @Override
 public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
 }

但是要做到这一点,您必须指定配置更改,您可以通过将标记添加到活动级别的清单文件中来处理自己

     android:configChanges=["mcc", "mnc", "locale",
                             "touchscreen", "keyboard", "keyboardHidden",
                             "navigation", "orientation", "screenLayout",
                             "fontScale", "uiMode"]

on onConfigurationChanged保存状态并在onResume上重新加载

最终这是一个非常简单的修复。 我需要在AndroidManifest中的活动中添加android:configChanges="orientation"行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM