Android Studio菜单布局预览正常 模拟器运行后不显示问题求助
安卓菜单不显示问题解决方法
原因1:主题未包含ActionBar
先检查AndroidManifest.xml中MainActivity对应的主题配置,确认使用的是带ActionBar的主题,示例配置如下:
<activity android:name=".MainActivity" android:exported="true" android:theme="@style/Theme.MaterialComponents.DayNight.DarkActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
如果你需要使用NoActionBar类主题,就在activity_main.xml布局中添加Toolbar控件,再在MainActivity的onCreate方法中添加绑定逻辑:
// 先在布局中定义id为toolbar的Toolbar控件 Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);
原因2:菜单项未配置显示规则
你当前的menu_main.xml没有给菜单项配置showAsAction属性,导致系统不知道该把菜单项放在ActionBar还是溢出菜单中,修改后的menu配置如下:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.guessinggame.MainActivity" > <item android:id="@+id/action_settings" android:title="Settings" app:showAsAction="never"/> <item android:id="@+id/action_newgame" android:title="New Game" app:showAsAction="ifRoom"/> <item android:id="@+id/action_gamestats" android:title="Game Stats" app:showAsAction="never"/> <item android:id="@+id/action_about" android:title="About" app:showAsAction="never"/> </menu>
属性说明:
app:showAsAction="ifRoom":ActionBar有剩余空间时直接显示菜单项app:showAsAction="never":始终放在右上角三点图标对应的溢出菜单中
修改完成后重新编译运行即可正常显示菜单。
内容的提问来源于stack exchange,提问作者Иван Рогожкин
相关产品推荐
相关产品推荐

