Actionbarsherlock 3点

时间:2014-10-07 07:49:11

标签: android actionbarsherlock

基本上我正在给菜单充气

public boolean onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    globalMenu = menu;
    getSupportMenuInflater().inflate(R.layout.menu_refresh, menu);
    return super.onPrepareOptionsMenu(menu);
}

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_refresh"
        android:showAsAction="never"
        android:title="@string/refresh"/>
    <item
        android:id="@+id/menu_24hours"
        android:showAsAction="never"
        android:title="@string/twentyfour_hours"/>
     <item
        android:id="@+id/menu_1week"
        android:showAsAction="never"
        android:title="@string/one_week"/>
    <item
        android:id="@+id/menu_1month"
        android:showAsAction="never"
        android:title="@string/one_month"/>
    <item
        android:id="@+id/menu_3month"
        android:showAsAction="never"
        android:title="@string/three_month"/>
    <item
        android:id="@+id/menu_6month"
        android:showAsAction="never"
        android:title="@string/six_month"/>

</menu>
发生了什么,是没有一个以3点格式显示。在冰淇淋三明治中你必须点击硬件上的按钮菜单,在nexus它显示3点。 我需要到处都有它作为3点,没有设备唯一性。

但是,如果我在菜单中这样做...

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_refresh"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_refresh_default" />
</menu>

这会显示在所有设备上的actionbardsherlock中。没有菜单硬件密钥。

2 个答案:

答案 0 :(得分:1)

尝试创建具有3个点作为图标的虚拟actionButton。如果我需要在所有设备上显示3个点按钮(特别是具有硬件菜单键的三星设备),这就是我的工作。 请注意,这实际上是一个黑客

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/menu_dummy_overflow"
    android:icon="@drawable/ic_action_ic_overflow"
    android:showAsAction="always"
    android:title="@string/more">
    <menu>
        <item
            android:id="@+id/menu_open_browser"
            android:icon="@drawable/ic_action_ic_browser"
            android:showAsAction="never"
            android:title="@string/opeinInBrowser">
        </item>
    </menu>
</item>
</menu>

答案 1 :(得分:0)

这是由正在运行的Android操作系统构建决定的。坏消息是,这意味着你几乎无法控制它。好消息是,这意味着用户将在手机上的每个应用上看到相同的行为,因此无论如何他们都会期待它。

您可以通过手动将溢出项添加到菜单并将溢出项放入该项的子菜单来模仿行为。这样做的缺点是您显示的项目数量是固定的。您无法在横向模式下获得平板电脑的好处,在ActionBar中显示更多项目