当前位置: 首页 > 知识库问答 >
问题:

操作栏-文本和图像不正常的子菜单项

苍和裕
2023-03-14

我正在开发小型Android应用程序,其中我使用带有一些菜单项的操作栏。一个菜单项包含子菜单。现在我想做的是始终显示带有文本和图标的菜单项。

我按照以下方式定义菜单项。

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

    <item
        android:id="@+id/card_menu"
        android:icon="@drawable/abc"
        android:showAsAction="withText|always"
        android:title="cards">

        <menu>

            <item
                android:id="@+id/C1"
                android:title="C1"/>

            <item
                android:id="@+id/C2"
                android:title="c2"/>

            <item
                android:id="@+id/C3"
                android:title="C3"/>
        </menu>
    </item>

    <item
        android:id="@+id/notification"
        android:actionLayout="@layout/notification_icon"
        android:icon="@drawable/notification"
        android:showAsAction="always"
        android:title="Notifications"/>

    <item
        android:id="@+id/filter"
        android:icon="@drawable/filter"
        android:showAsAction="always"
        android:title="Filter"/>

</menu>

现在我的操作栏正确显示我的项目;唯一的问题是,当窗口竖屏时,它只显示图像,当窗口处于横向模式时,它同时显示图像和文本。但是我想要两种模式下的图像和文本。

怎么做?有什么办法解决这个问题吗?

共有2个答案

斜俊
2023-03-14

使用android:showAsAction=“ifRoom | withText”比总是使用更好
这种情况取决于文本大小和屏幕宽度。

柴修筠
2023-03-14

如果您使用的是Android Sopport库(Android.support.v7.app.ActionBar)中的ActionBar,您可能需要更改菜单和项目声明:

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

<item
    android:id="@+id/notification"
    android:actionLayout="@layout/notification_icon"
    android:icon="@drawable/notification"
    android:showAsAction="always"
    android:title="Notifications"/>

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


<!-- Your item to be shown as action-->    
<item
    android:id="@+id/notification"
    android:actionLayout="@layout/notification_icon"
    android:icon="@drawable/notification"
    android:showAsAction="always"
    yourappname:showAsAction="always"
    android:title="Notifications"/>

我在提供与旧android版本的兼容性时遇到了类似的问题。

 类似资料:
  • 你好 由于某些原因,该图标从未显示在操作栏上,我使用了ifRoom |与text的组合,但仍然没有显示。我也尝试过在风景中旋转。我正在使用genymotion 4.4.2 我正在膨胀菜单中的一个片段: 我在纵向和横向模式下尝试了硬件nexus5,但没有图标。 我也尝试过使用以下方法,但也不起作用: 非常感谢任何建议,

  • 我的应用程序里有标签。每个标签是不同的片段和不同的菜单。下面是我正在使用的布局 现在,对于中的每个片段,我都进一步提到了。我已经覆盖了每个片断中的函数,它首先有,然后调用它的超级构造函数,然后膨胀片断自己的菜单XML。但我得到的结果是这样的- 假设有5个选项卡。第2和第3个选项卡中的viewpager由中的两个片段组成 第一个选项卡没有菜单 第二个选项卡有menu_2(仅用于第二个子片段) 第三个

  • 有没有一种方法来显示在操作栏中的HoneyComb菜单项之间的分隔符。 有些帖子说,只有当菜单项具有android时,分隔符才会显示: show AsAction="with Text"。 我想只显示图标,而不是文本。 我通过实现一个操作栏兼容性,成功地展示了Pre-HoneyComb的分隔器。 我不想使用ActionBarSherlock在这篇文章中给出的Android actionbar sh

  • 我有一个活动有3个碎片(不是标签)。我有几个动作条项目,我想隐藏他们时,某个片段是存在的。我该怎么做呢?

  • 如何从操作栏禁用“选项”菜单项? 我做了我自己的自定义栏,用于显示*. png标志,但我不想显示选项菜单的三个点按钮。 我试图找到一些解决办法,但没有任何效果。

  • 我使用BottomNavigationViewEx库在我的android应用程序中显示底部菜单栏,该库运行良好并修复了标准BottomNavigationView的许多缺点。 问题是,根据要求,我需要在菜单中显示7个选项,其中4个选项是对各自功能的直接访问,还有一个“更多”选项,该选项应该显示一个包含3个以上选项的子菜单(类似于一个工具栏,其中包含属性为showAsAction=“never”的项