Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android actionbar compat上强制溢出菜单?_Android_Overflow_Android 4.0 Ice Cream Sandwich_Android Actionbar_Actionbarsherlock - Fatal编程技术网

如何在android actionbar compat上强制溢出菜单?

如何在android actionbar compat上强制溢出菜单?,android,overflow,android-4.0-ice-cream-sandwich,android-actionbar,actionbarsherlock,Android,Overflow,Android 4.0 Ice Cream Sandwich,Android Actionbar,Actionbarsherlock,可能吗?在旧设备(3.0之前)上,不适合操作栏的项目仅在按下菜单键时显示,我希望这些项目在操作栏的溢出菜单中分组。操作溢出菜单仅在设备上没有可用的硬菜单按钮时可用。我在用户界面>操作栏的框架主题中发现了这一点,请查看第三个项目符号 有一个名为ActionBarSherlock的操作栏库。也许这可以为您提供一个动作溢出菜单样式,即使在旧设备上(包括一个硬菜单按钮),但是我还没有研究过这个 编辑:ActionBarSherlock 4.0(目前是候选版本)内置了强制操作溢出的功能。如果您想自己扩展A



可能吗?在旧设备(3.0之前)上,不适合操作栏的项目仅在按下菜单键时显示,我希望这些项目在操作栏的溢出菜单中分组。

操作溢出菜单仅在设备上没有可用的硬菜单按钮时可用。我在用户界面>操作栏的框架主题中发现了这一点,请查看第三个项目符号

有一个名为ActionBarSherlock的操作栏库。也许这可以为您提供一个动作溢出菜单样式,即使在旧设备上(包括一个硬菜单按钮),但是我还没有研究过这个

编辑:ActionBarSherlock 4.0(目前是候选版本)内置了强制操作溢出的功能。如果您想自己扩展ActionBarCompat示例,可以查看github,了解Jake是如何实现它的。我建议大家一起使用他的图书馆,因为它做得很好

如果您选择使用Jake的库,请考虑将活动主题设置为@style/theme.Sherlock.ForceOverflow,以便在旧设备上强制使用溢出菜单


Edit2:使用
ForceOverflow
主题会导致带有硬件菜单按钮的设备出现问题()。因此,杰克·沃顿将在未来的版本中删除
ForceOverflow

好的,这很简单,但很难理解

您首先需要一个要用作溢流充气器的菜单项。范例

<item
        android:id="@+id/a_More"
        android:icon="@drawable/more"
        android:showAsAction="always"
        android:title="More">
        </item>
注意:为溢出菜单充气的物品必须
showAsAction=“always”


Vwola!你有一个溢出菜单!希望我帮了你。:)

根据LeviRockerSk8er的建议,我不得不在操作栏中设置一个溢出菜单,如下所示:

这是“menu.xml”的代码:



你没有仔细阅读这个问题。他正在使用一个官方的android操作栏库来获得向后和向前的兼容性。他想在Android 4.0下强制使用溢出选项,而不是将他的旧菜单变成ICS上的功能菜单。@EricNovins,ABS库提供了他所需要的。如果他选择不使用这个库,If会为他提供一个方向,以他自己的方式扩展ActionBarCompat。我永远不会建议完全抛弃这个库。一个函数需要大量的重新编码。这不是一个高质量的答案,但谷歌如何在谷歌+(Google+)上使用action overflow呢?我使用的是Nexus S,它有硬菜单按钮,所以溢出不应该在那里…无论如何,我在几乎所有的股票上都看到了它gapps@Shine即使您有硬菜单按钮,开发人员也可以强制显示溢出按钮。这只会在所有设备上提供一致的UI,即使它们是ICS之前的设备。从ABS changelog changelog.md:27:*修复:删除
.ForceOverflow
主题。这些不应该包括在内,这不起作用。我无法让它显示垂直溢出菜单图标(3个垂直框,意思是:“单击我查看溢出菜单”)。他们仍然会进入硬件菜单按钮reat,对于我的应用程序,你的例子它工作得非常好!!明亮的对于习惯旧式风格的人来说,拥有它很好。对于能够适应不断变化的技术的年轻一代来说,这并不是什么大问题,但老年人很难弄明白这一点。很难向他们解释,如果有一个硬件按钮,他们看不到GUI按钮,所以实现起来更容易。不过,当我在“活动”中添加android:uiOptions中的“splitActionBarWhenNarrow”时,它会在底部显示栏。在skd 10及其以下,溢出不会显示为下拉菜单,而是显示为中间的列表。除此之外,这个方法也有效。看起来你必须把菜单项作为第二项。如果您只有它,那么它将显示为一个旧菜单,从硬件键调用。
<item
    android:id="@+id/a_More"
    android:icon="@drawable/more"
    android:showAsAction="always"
    android:title="More">
    <menu>
        <item
            android:id="@+id/aM_Home"
            android:icon="@drawable/home"
            android:title="Home"/>
    </menu>
</item>
android:uiOptions="splitActionBarWhenNarrow"
<item
    android:id="@+id/web_clasica"
    android:icon="@drawable/ic_action_web_site"
    android:showAsAction="ifRoom"
    android:title="@string/menu_web"
    />
<item
    android:id="@+id/overflow_fijo"
    android:icon="@drawable/ic_action_core_overflow"
    android:showAsAction="always"
    android:title="@string/menu_email"
   >
   <menu>
    <item
    android:id="@+id/email"
    android:icon="@drawable/ic_action_new_email"
    android:showAsAction="ifRoom"
    android:title="@string/menu_email"
   />
    <item
    android:id="@+id/share"
    android:icon="@drawable/ic_action_share"
    android:showAsAction="ifRoom"
    android:title="@string/menu_share"
    />
    <item
    android:id="@+id/about"
    android:showAsAction="ifRoom"
     android:icon="@drawable/ic_action_action_about"
    android:title="@string/menu_about"/>
</menu>