是否可以为不同的屏幕尺寸定义不同的菜单?我尝试添加文件夹 res/menu-large
和 res/menu-xlarge
,但是我在xlarge平板电脑上放置在这里的菜单xml没有任何效果。
这不是一个真正的答案,只是一个想法,但是评论区写不下:
我认为这不受支持,似乎没有文档记录。但是一个可能的想法是,对不同的值设置布尔值。例如,您可以设置一些res-values文件夹:
res/values-xlarge res/values-large res/values-sw600dp
等等。在这些values中,您可以声明一个布尔值:
<resources>
<bool name="isXLarge">true</bool>
</resources>
或者
<resources>
<bool name="isLarge">true</bool>
</resources>
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;
}