是否可以为不同的屏幕尺寸定义不同的菜单?我试过添加文件夹res/menu-large
和res/menu-xlarge
,但我放在这里的菜单 xmls 对我的 xlarge 平板电脑没有影响。
问问题
1044 次
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 回答