我想用Action在ActionBar上显示我的菜单项 我发现了一些样品,但这不是我想要的样品
菜单应该是下面的类似图片(溢出图标或文字)
我的menu.xml是:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_refresh"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/icon"
android:visible="true"
android:title="Refresh"/>
<item
android:id="@+id/action_settings"
android:title="Settings">
<item
android:id="@+id/mapMenu"
android:title="map menu" />
<item
android:id="@+id/favMenu"
android:title="favorite" />
<item
android:id="@+id/listMenu"
android:title="List Menu" />
</item>
和我的android代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Toast.makeText(getApplicationContext(), item.getTitle() + " selected", Toast.LENGTH_SHORT).show();
switch (item.getItemId()) {
case R.id.mapMenu:
// do something
break;
case R.id.favMenu:
// do something
break;
case R.id.listMenu:
// do something
break;
}
return true;
}
答案 0 :(得分:2)
在所有商品标签中写下以下内容
android:showAsAction="never"
然后所有项目都会显示在溢出。
中例如:
<item
android:id="@+id/mapMenu"
android:showAsAction="never"
android:title="map menu" />
希望这会对你有所帮助。
答案 1 :(得分:0)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/main_menu"
android:showAsAction="always"
android:icon="@drawable/icon"
android:visible="true">
<item
android:id="@+id/action_refresh"
android:showAsAction="never"
android:title="Refresh"/>
<item
android:id="@+id/action_settings"
android:title="Settings"
android:showAsAction="never" />
<item
android:id="@+id/mapMenu"
android:title="map menu"
android:showAsAction="never" />
<item
android:id="@+id/favMenu"
android:title="favorite"
android:showAsAction="never" />
<item
android:id="@+id/listMenu"
android:title="List Menu"
android:showAsAction="never" />
</item>
</menu>
android:showAsAction:
此项目何时以及如何在操作栏中显示为操作项。仅当活动包含ActionBar(在API级别11中引入)时,菜单项才会显示为操作项。
尝试给定的代码。首先创建根项目保持其android:showAsAction:Always
然后在该根项目内创建具有android:showAsAction:never
的其他项目。
答案 2 :(得分:0)
如果要显示三个点,无论设备菜单按钮如何,那么您可以在应用程序类'onCreate方法 -
中调用下面的代码(基于反射) try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
警告:这是一个糟糕的黑客攻击,会破坏与其他人的一致性 平台上的应用程序
答案 3 :(得分:0)
谢谢大家 但我添加了android:showAsAction =&#34; ifRoom | withText&#34;结果是:
我还测试了android:showAsAction =&#34; ifRoom | withText&#34;和菜单项隐藏