是否可以为不同的屏幕尺寸定义不同的菜单?我尝试添加文件夹res/menu-large
和res/menu-xlarge
,但我放在这里的菜单xmls对我的xlarge平板电脑没有影响。
答案 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
等等。
然后将菜单文件放入相应的文件夹中,它们将在运行时被提取。