我在教会应用程序中使用AppCompat
库,但我的菜单图标未显示在ActionBar
中。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
return true;
case R.id.menu_item_share:
shareApp();
return true;
case R.id.menu_item_about:
Intent intentAbout = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intentAbout);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我写了正确的xml,因为我读过它应该是:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/menu_item_share"
android:title="@string/menu_share"
android:icon="@drawable/ic_action_share"
android:showAsAction="ifRoom" />
<item
android:id="@+id/menu_item_about"
android:title="@string/menu_about"
android:icon="@drawable/ic_action_about"
android:showAsAction="ifRoom" />
注意:按设备上的MENU按钮,它们会出现。
答案 0 :(得分:6)
更改此
android:showAsAction="never"
到
yourapp:showAsAction="never"
也可以使用yourapp:showAsAction="always"
您也可以使用&#34;始终&#34;声明项目始终显示为操作按钮。但是,您不应强制项目以此方式显示在操作栏中。
注意:如果操作栏的操作栏空间不足,则菜单项会显示在溢出处,只显示标题。
与其他人相似。
引用文档
使用支持定义的任何XML属性时,这是必需的 库,因为Android中不存在这些属性 旧设备上的框架。所以你必须使用自己的命名空间作为 支持库定义的所有属性的前缀。
你已经拥有
xmlns:yourapp="http://schemas.android.com/apk/res-auto"
欲了解更多信息,请阅读
答案 1 :(得分:0)
将android:showAsAction="never"
更改为android:showAsAction="always"
答案 2 :(得分:0)
如果您使用AppCompat操作栏处理3.0以下的版本,则需要在menu.xml中的menu标签中使用此代码行:
xmlns:custom="http://schemas.android.com/apk/res-auto"
菜单布局中的菜单标记应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto">
<!-- ITEMS HERE -->
</menu>
然后也改变:
android:showAsAction="never"
有:
android:showAsAction="always"
或:
android:showAsAction="ifRoom"
还建议在子菜单中包含所有项目,因此操作栏上只有一个菜单按钮,然后当您按下它时,您会在下拉菜单中看到其他菜单选项。
您可以通过以下方式实现此目的:
<item
android:id="@+id/action_submenu"
android:showAsAction="always"
android:title=""
android:icon="@drawable/your_icon" >
<menu >
<item />
<item />
........
</menu>
</item>
希望它有所帮助!