You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中onCreateOptionsMenu菜单不显示问题求助

问题

一直尝试在Android应用中添加菜单栏但始终无法显示,最初以为是Kotlin语言的问题,切换到Java后问题依旧。试过返回true、调用setHasOptionsMenu(true)都没用,使用Android Studio Flamingo版本(android-studio-2022.2.1.20-windows),换过版本、跟着YouTube教程操作还是不行。需求是添加包含搜索图标和退出选项的菜单栏。

提供的代码

菜单XML(res/menu/home_menu.xml)

<item
    android:id="@+id/search"
    android:icon="@drawable/baseline_search_24"
    android:title="Search"
    app:showAsAction="ifRoom|collapseActionView"
    app:actionViewClass="androidx.appcompat.widget.SearchView"/>
<item
    android:id="@+id/about"
    android:title="About"/>
<item
    android:id="@+id/share"
    android:title="Share"/>

MainActivity代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.home_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
}
解决方案
  • 检查主题配置:确保App主题继承自带ActionBar的主题,比如Theme.MaterialComponents.DayNight.DarkActionBar或Theme.AppCompat.Light.DarkActionBar,避免使用NoActionBar系列主题。可在res/values/styles.xml中修改:
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- 其他主题配置 -->
    </style>
    
  • 修正onCreateOptionsMenu返回值:将return super.onCreateOptionsMenu(menu)改为return true,明确告知系统菜单已加载完成需要显示。
  • 绑定自定义Toolbar(如果有):如果布局中手动添加了Toolbar,需在onCreate方法中设置它为ActionBar:
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    
  • 验证图标资源:确认@drawable/baseline_search_24图标存在且无命名、格式错误,缺失的图标可能导致菜单加载异常。
  • 清理重建项目:点击Build > Clean Project后选择Build > Rebuild Project,清除Android Studio缓存后重新运行应用。

内容的提问来源于stack exchange,提问作者Gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:28:17