为什么菜单项不显示为动作?

问题描述:

这是XML文件:为什么菜单项不显示为动作?

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/main_main_prefs" 
     android:icon="@drawable/ic_tune_white_24px" 
     android:title="@string/menu_settings" 
     android:visible="true" 
     app:showAsAction="always" /> 
</menu> 

This is the Android studio render 但是,这是在实际设备的情况下:
Actual Device

更新:这是菜单通货膨胀代码。图片是真实设备中的响应。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     (new MenuInflater(this)).inflate(R.menu.menu_main,menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()){ 
      case R.id.main_main_prefs: 
       Toasty.info(this,"Prefs Was Clicked").show(); 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

the response

+0

你确定你已经膨胀了正确的菜单文件吗?检查'inflater.inflate(R.menu.main,菜单)中的菜单ID;' –

+0

是的,我非常确定。 –

+0

你可以发布代码吗? –

你必须这样

MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.main, menu); 
return true; 

创建菜单,而不是

(new MenuInflater(this)).inflate(R.menu.main,menu); 
return super.onCreateOptionsMenu(menu); 

你可以尝试添加android:orderInCategory。类似这样的:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/main_main_prefs" 
     android:icon="@drawable/ic_tune_white_24px" 
     android:title="@string/menu_settings" 
     android:orderInCategory="100" 
     android:visible="true" 
     app:showAsAction="always" /> 
</menu>