Android 菜单项以完全奇怪的方式出现

Android menu items appear in a totally weird fashion

我有一个菜单 xml。非常基本和简单:

<?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">

<item
    android:id="@+id/item_bookmark"
    android:icon="@drawable/ic_read"
    android:orderInCategory="0"
    android:title=""
    app:showAsAction="always" />
<item
    android:id="@+id/item_share"
    android:icon="@drawable/ic_collab"
    android:orderInCategory="1"
    android:title=""
    app:showAsAction="always" />

</menu>

然而它看起来是这样的:

第一项看起来不错。第二个和以后的是 "trimmed" 或 "cut" 或其他。 ifRoomalwayscategory 等,没有任何作用。它在预览中看起来像这样。我猜我启用了导致此问题的样式中的某些设置。

从没想过我会卡在 Android 菜单中。有人可以帮我吗?

我的风格是这样的(如果有人想看的话)

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/black</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowLightStatusBar">true</item>
    <item name="android:colorBackground">@color/white</item>
    <item name="android:windowBackground">@color/white</item>
    <item name="android:statusBarColor">@android:color/white</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <!--<item name="android:statusBarColor">@color/zifycolorDarker</item>-->

    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowActivityTransitions">true</item>
    <item name="android:orientation">vertical</item>
    <item name="android:navigationBarColor">@android:color/black</item>
    <item name="android:windowAnimationStyle">@style/AllActivityWindowAnimationStyle</item>
    <item name="android:windowDisablePreview">true</item>
    <item name="colorControlNormal">@color/black</item>
    <item name="colorControlActivated">@color/white</item>

</style>

试试这个设置:

<menu>
    <item
        android:id="@+id/item_bookmark"
        android:icon="@drawable/ic_read"
        android:title=""
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/item_share"
        android:icon="@drawable/ic_collab"
        android:title=""
        app:showAsAction="ifRoom" />
</menu>

找到答案了!

所以我不小心使用了错误的 属性 来设置屏幕方向。有个属性

<item name="android:orientation">vertical</item>

这会将所有内容设置为纵向甚至需要水平放置的组件。 删除它,一切正常。