名为“action_settings”的菜单项显示在我的Nexus 5上,但没有显示我在XML中指定的齿轮图标,带有我未指定的android选项图标。它在Galaxy S2上根本不显示。任何人都知道为什么会发生这种奇怪的行为?我的其余菜单按预期显示。感谢。
编辑这可能是因为它不合适,因为当我点击电话菜单按钮时,它会直接进入我在action_settings菜单项中的2个复选框。但仍有一半的动作栏可以自由使用:/
编辑我的Nexus 5上显示的图标称为“溢出”图标。 3个垂直方块。也许暗示了太多的操作栏图标。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.dressing_room, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case R.id.menu_femaleHat : addClothes(R.id.menu_femaleHat);
break;
case R.id.menu_femalePants: addClothes(R.id.menu_femalePants);
break;
case R.id.menu_femaleTop: addClothes(R.id.menu_femaleTop);
break;
case R.id.menu_maleHat: addClothes(R.id.menu_maleHat);
break;
case R.id.menu_malePants: addClothes(R.id.menu_malePants);
break;
case R.id.menu_maleTop: addClothes(R.id.menu_maleTop);
break;
case R.id.menuMaleHair: addClothes(R.id.menuMaleHair);
break;
case R.id.menuFemaleHair: addClothes(R.id.menuFemaleHair);
break;
case R.id.menuMaleAccessories: addClothes(R.id.menuMaleAccessories);
break;
case R.id.menuFemaleAccessories: addClothes(R.id.menuFemaleAccessories);
break;
case R.id.action_save: saveClicked();// cropImage();
break;
case R.id.action_cancel: goToStartScreen();// cropImage();
break;
case R.id.uniformScale:
changeAnisotropic(item);
break;
case R.id.rotation:
changeRotate(item);
break;
default: Log.d("wrong menu","Invalid option");
break;
}
return super.onOptionsItemSelected(item);
}
<item
android:id="@+id/menu_sticker"
android:showAsAction="always"
android:icon="@drawable/ic_action_add"
android:title="Add Sticker">
<menu>
<item
android:id="@+id/menu_male"
android:showAsAction="always"
android:title="Male">
<menu>
<item
android:id="@+id/menu_add_clothes"
android:title="Add Clothes">
<menu>
<item
android:id="@+id/menu_maleHat"
android:title="Hat"/>
<item
android:id="@+id/menu_maleTop"
android:title="Top"/>
<item
android:id="@+id/menu_malePants"
android:title="Pants"/>
</menu>
</item>
<item
android:id="@+id/menuMaleAccessories"
android:showAsAction="always"
android:title="Add Accessories">
</item>
<item
android:id="@+id/menuMaleHair"
android:showAsAction="always"
android:title="Add Hair">
</item>
</menu>
</item>
<item
android:id="@+id/menu_female"
android:showAsAction="always"
android:title="Female">
<menu>
<item
android:id="@+id/menu_add_clothes"
android:title="Add Clothes">
<menu>
<item
android:id="@+id/menu_femaleHat"
android:title="Hat"/>
<item
android:id="@+id/menu_femaleTop"
android:title="Top"/>
<item
android:id="@+id/menu_femalePants"
android:title="Pants"/>
</menu>
</item>
<item
android:id="@+id/menuFemaleAccessories"
android:showAsAction="always"
android:title="Add Accessories">
</item>
<item
android:id="@+id/menuFemaleHair"
android:showAsAction="always"
android:title="Add Hair">
</item>
</menu>
</item>
</menu>
</item>
<item
android:id="@+id/action_settings"
android:showAsAction="always"
android:title="Sticker Settings"
android:icon="@drawable/ic_action_gear">
<group android:checkableBehavior="all">
<item android:id="@+id/uniformScale"
android:title="Enable Re-sizing"
android:checked="true" />
<item android:id="@+id/rotation"
android:title="Enable Rotation"
android:checked="false" />
</group>
</item>
<item
android:id="@+id/action_save"
android:showAsAction="always"
android:title="@string/action_save"
android:icon="@drawable/ic_action_save">
</item>
<item
android:id="@+id/action_cancel"
android:showAsAction="always"
android:title="Cancel"
android:icon="@drawable/ic_action_cancel">
</item>
答案 0 :(得分:2)
你有没看过这个
I have 3 menu icons on the menu bar
就本答案而言,我假设您通过“菜单栏”指的是操作栏。
but everytime it only shows 2 icons, the last one is in nowhere
对于具有离屏MENU按钮的设备(或仿真器),按MENU按钮可以使用最后一个。
there is enough space for 3 icons, why only 2 are shown?
大概是因为Android不同意你对3个图标是否有足够空间的评估。
if the system thinks the space is not enough for the 3rd icon, why doesn't
it combine the 2nd and 3rd icon into an overflow menu?
我不知道为什么你认为强迫第二个图标 - 这是你的承认,适合 - 溢出菜单将是一个好主意。第3个菜单项位于溢出菜单中,可通过操作栏上具有一个或三个垂直点按钮的设备上的MENU按钮访问,该按钮用于没有MENU按钮的设备