7

我想要一个应用布局,就像他们用于 Gmail 的布局一样。他们有带有图标的操作栏(在我的设备上,它有用于向上导航的应用程序徽标,以及用于选择优先收件箱/收件箱/等的自定义视图),但也有某种拆分ActionBar,因为在底部我有几个图标(撰写、搜索、标签等)。

我怎么能这样做?我ActionBar通过这个 XML 实现了以下内容:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_gps"
        android:icon="@drawable/icone_gps_continu"
        android:showAsAction="always"
        android:title="@string/menu_gps"/>
    <item
        android:id="@+id/menu_sort"
        android:icon="@drawable/icone_liste_chron"
        android:showAsAction="always"
        android:title="@string/menu_liste"/>
    <item
        android:id="@+id/menu_stats"
        android:icon="@drawable/icone_statistiques"
        android:showAsAction="always"
        android:title="@string/menu_stats"/>
    <item
        android:id="@+id/menu_save"
        android:icon="@drawable/icone_terminersortie"
        android:showAsAction="always"
        android:title="@string/menu_save"/>
    <item
        android:id="@+id/menu_search"
        android:icon="@drawable/ic_launcher"
        android:showAsAction="always"
        android:title="@string/menu_search"/>
    <item
        android:id="@+id/menu_photo"
        android:icon="@drawable/icone_enregistrerphoto"
        android:showAsAction="always"
        android:title="@string/menu_photo">
    </item>
    <item
        android:id="@+id/menu_sound"
        android:icon="@drawable/icone_enregistrerson"
        android:showAsAction="always"
        android:title="@string/menu_sound">
    </item>
    <item
        android:id="@+id/menu_settings"
        android:icon="@drawable/icone_parametres"
        android:showAsAction="always"
        android:title="@string/menu_settings">
    </item>

</menu>

我当然通过在清单中ActionBar添加android:uiOptions="splitActionBarWhenNarrow"我的标签来启用拆分。<application>

我得到的是一个空的“顶部” ActionBar;底部的仅显示三个图标。我想我可以在纵向模式下在顶部显示 3-4 个图标,在底部显示 5 个图标,在横向模式下所有这些图标都在顶部。

注意:即使我使用 Galaxy Nexus 在 ICS 上进行测试,我也在使用 ActionBarSherlock 以提供向后兼容性。

4

2 回答 2

10

看来我发的太快了,似乎不可能。

重复:

显然这是不可能的。然而,他们在 gmail/gplus 中做到了,也许在底部使用自定义视图......仍然期待更好的答案!

Reto Meier对此表示:

我认为在顶部和底部之间拆分操作的问题在于它会使执行操作变得更加困难。动作应该是在 Activity 上要做的最重要的事情——将它们分开在屏幕的顶部和底部意味着用户需要查看两个位置而不是一个位置。

于 2012-04-17T22:15:37.237 回答
6

我也想知道这些应用程序是如何在两个栏中都有图标的,所以我反编译了其中两个。

我发现这两个应用程序根本没有实现ActionBar并为两个栏使用自定义布局。我不确定我是否可以在这里命名这些应用,但它们是下载量超过 1000 万的知名应用。

如果您不喜欢默认设置ActionBar(自定义空间非常小),我强烈建议您采用相同的方式并创建自定义布局(两个栏都不需要,这取决于您的需要)。

重现拆分操作栏布局非常容易。它的高度始终48dp与设备无关,因此简单LinearLayoutRelativeLayout具有固定高度和一些透明图像按钮的效果非常好。只需 15 分钟,您就可以获得完全可定制的拆分操作栏。

于 2012-07-30T13:59:59.253 回答