3

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

4

2 回答 2

1

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

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

res/values-xlarge res/values-large res/values-sw600dp

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

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

或者

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

ETC...

然后创建不同的菜单布局,如果其中一个值为真,您可以开始。

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

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

于 2013-05-17T12:21:54.617 回答
0

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

res/menu res/menu-sw600dp res/menu-sw720dp

ETC..

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

于 2019-02-05T13:43:25.453 回答