java - Android:菜单项总是显示在溢出中

标签 java android xml android-activity menu

我已经在不同的帖子中查看了很多次,但没有一个为我解决了这个问题。我的 XML 定义的菜单项总是出现在溢出中,并且出现了两次。这是 XML 文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/add_Playlist"
    android:icon="@android:drawable/ic_menu_add"
    app:showAsAction="ifRoom|withText"
    android:title="@string/addPlaylist" />

</menu>

我正在 Activity 文件中的工具栏顶部扩展菜单:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setActionBar((android.widget.Toolbar) findViewById(R.id.toolbar));

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}

然而菜单项却出现在溢出中。在 Android Studio 的渲染 View 中,菜单看起来是正确的。

如果你想让我附上一张快照,我会的。我正在使用 API 23(目前)的模拟器上运行该应用程序。我不知道是否应该包含任何其他文件,但请告诉我您是否需要它们。提前致谢!

[编辑] 这是工具栏的屏幕截图: https://gyazo.com/2743b74a8aee07035b8398f1b41002c4

这是我的 styles.xml:

<resources
xmlns="http://schemas.android.com/apk/res-auto">
<color name="card_title_text">#111111</color>
<color name="card_desc_text">#aaaaaa</color>
<color name="action_bar_text">#ffffff</color>

<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionMenuTextColor">@color/action_bar_text</item>
    <item name="android:navigationBarColor">@color/black</item>
    <item name="android:colorForeground">@color/foreground_material_light</item>
    <item name="android:colorBackground">@color/background_material_light</item>
    <item name="android:statusBarColor">@color/statusBarColor</item>
    <item name="android:windowBackground">@color/windowBackground</item>
</style>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="actionMenuTextColor">@color/action_bar_text</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />


</resources>

我还尝试设置 app:showAsAction="always" 但它不起作用。没有明显的变化。

最佳答案

我不确定我完全理解 - 你的意思是你想看到工具栏中的图标而不是 @string/addPlaylist 中的文字

如果是这样,您需要更改菜单项中的以下行:

app:showAsAction="always"

关于java - Android:菜单项总是显示在溢出中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33309454/

相关文章:

android - 屏幕布局仅使用相对大小和填充,不使用 xml 文件中的任何绝对像素定义

java - 在 Redis 关闭时处理 KeyEventListener

android - 为什么android的值为:background still being used after a switch to a new theme

Android Studio 不生成签名的 apk

java - Android:如何列出父文件夹内的所有子文件夹?

c# - XXE:使用 XDocument 对 XML 外部实体引用的不当限制

Java SAX 解析

java - 试图找到Java数组的最小值

java - 我在 netbeans 中遇到 jcalender 代码错误

java - 是否可以使用maven-bundle-plugin(bnd)生成plugin.xml