不同的菜单xmls适用于不同的屏幕尺寸

时间:2013-05-17 09:18:32

标签: android menu

是否可以为不同的屏幕尺寸定义不同的菜单?我尝试添加文件夹res/menu-largeres/menu-xlarge,但我放在这里的菜单xmls对我的xlarge平板电脑没有影响。

2 个答案:

答案 0 :(得分:1)

不是一个真正的答案,只是一个想法,但是评论的时间太长了:

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

RES /值-XLARGE RES /值-大 res / values-sw600dp

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

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

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

等...

然后创建不同的菜单布局,如果其中一个值为true,则可以启动它们。

menu_large.xml menu_xlarge.xml menu_sw620dp.xml

在createOptionsMenu:

    @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;
  }

我从未测试过,因为如果您为可绘制文件夹设置了不同的绘图,生成的菜单在所有屏幕尺寸上看起来都不错。

答案 1 :(得分:0)

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

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

等等。

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