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" 或其他。 ifRoom
、always
、category
等,没有任何作用。它在预览中看起来像这样。我猜我启用了导致此问题的样式中的某些设置。
从没想过我会卡在 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>
这会将所有内容设置为纵向甚至需要水平放置的组件。
删除它,一切正常。
我有一个菜单 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" 或其他。 ifRoom
、always
、category
等,没有任何作用。它在预览中看起来像这样。我猜我启用了导致此问题的样式中的某些设置。
从没想过我会卡在 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>
这会将所有内容设置为纵向甚至需要水平放置的组件。 删除它,一切正常。