Android 不同屏幕尺寸的不同菜单XML

Android 不同屏幕尺寸的不同菜单XML,android,menu,Android,Menu,是否可以为不同的屏幕大小定义不同的菜单?我尝试添加文件夹res/menu large和res/menu xlarge,但我在此处放置的菜单XML对我的xlarge平板电脑没有任何影响。不是真正的答案,只是一个想法,但太长,无法发表评论: 我不认为这是支持的,这似乎是没有文件记录。但一个可能的想法是,在不同的值上设置布尔值。例如,您可以设置som res values文件夹: res/values xlarge res/values大 res/values-sw600dp 等等。在该值中,可以声明

是否可以为不同的屏幕大小定义不同的菜单?我尝试添加文件夹
res/menu large
res/menu xlarge
,但我在此处放置的菜单XML对我的xlarge平板电脑没有任何影响。

不是真正的答案,只是一个想法,但太长,无法发表评论:

我不认为这是支持的,这似乎是没有文件记录。但一个可能的想法是,在不同的值上设置布尔值。例如,您可以设置som res values文件夹:

res/values xlarge res/values大 res/values-sw600dp

等等。在该值中,可以声明布尔值:

    <resources>
<bool name="isXLarge">true</bool>
    </resources>

我从未测试过它,因为如果您将不同的可绘制文件夹设置为可绘制文件夹,则生成的菜单在所有屏幕大小上都很好。

您可以为不同的屏幕大小创建不同的菜单文件夹,例如:

资源/菜单 res/menu-sw600dp res/menu-sw720dp

等等


然后将菜单文件放在相应的文件夹中,它们将在运行时被提取。

谢谢!这不是一个很好的解决方案,因为它需要Java代码分支,但我会尝试一下。是的,我知道。但有时,如果我们想做的事情没有任何支持,我们需要简洁的解决方案……)
    <resources>
<bool name="isLarge">true</bool>
    </resources>
    @Override
  public boolean onCreateOptionsMenu(Menu menu) {
   MenuInflater inflater = getMenuInflater();
   boolean xlargeValue = getResources().getBoolean(R.bool.isXlarge);
   boolean largevalue = getResources().getBoolean(R.bool.isLarge);
   boolean tabletValue = getResources().getBoolean(R.bool.sw620dp):

   if(xlargeValue==true){
   inflater.inflate(R.menu.menu_xlarge, menu);
   }else if(largevalue==true){
    inflater.inflate(R.menu.menu_large, menu);
   }else if(tabletValue==true){
      inflater.inflate(R.menu.menu_sw620dp, menu);
    }

   return true;
  }