8

在此处输入图像描述

我想制作像 Evernote 中一样具有 ActionBar 的幻灯片菜单。在这个应用程序中,似乎它有 2 个动作条(我不确定)。一个在主菜单中,另一个在滑动菜单中。

反正有没有像这样构建2个ActionBars?或者它只是一个类似于 ActionBar 外观的布局安排。

感谢您的所有帮助,并为我的英语感到抱歉。

附言。我使用 ActionBarSherlock 和 SlidingMenu 来实现这一点,但我找不到像在 Evernote 中那样的方法。

4

2 回答 2

9

你写了:

我使用(...)SlidingMenu

如果SlidingMenu您的意思是Jeremy FeinsteinSlidingMenu,并且您想继续使用此菜单库,则不能使用 'real' ActionBar,因为SlidingMenu'smenu 实现为 a ,在库中Fragment命名。SlidingMenuFragmentAFragment无法容纳ActionBar.

您可以创建一个看起来像ActionBar. 在SlidingMenuFragment's您设置布局文件时,如下所示:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ViewGroup viewGroup = (ViewGroup) inflater.inflate(R.layout.sliding_menu,null);

例如,在菜单的布局文件(此处称为sliding_menu.xml)中,您可以通过将其嵌套在顶部的布局中来使其SearchView看起来像在一个 ActionBar然后,将该布局的背景颜色/可绘制对象设置为与列表其余部分不同的颜色。请参见下面的示例(我知道嵌套 LinearLayouts 并不漂亮......只是一个使用示例应用程序中的快速示例来LinearLayout理解SlidingMenu这个想法):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#333333" >

        <SearchView
            android:id="@+id/searchView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/list_padding"
        android:paddingRight="@dimen/list_padding" />

</LinearLayout>

这看起来像:

在此处输入图像描述

打开时,右侧的浅灰色框是“真实”的一部分ActionBar

编辑:您在评论中写道:

searchView 示例有效 我无法让下拉菜单以相同的方式工作。

EverNote 应用程序中的下拉菜单看起来像是使用 Holo 主题实现的Spinner。Android Developers对如何向布局添加 a 进行了详尽的介绍。SpinnerSpinner 的逻辑/java 代码将被放入SlidingMenuFragment(如果您使用SlidingMenu库)。

于 2012-11-28T10:51:12.113 回答
1

好的,我在 Gunnar Karlsson 的帮助下成功做到了,他把我推向了正确的方向,而不是 SearchView

我像这样实现了一个 ImageButton:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#333333" >

        <ImageButton
                android:layout_width="wrap_content" 
                android:layout_height="60dp" 
                android:src="@drawable/ic_launcher"
                android:onClick="showPopup" />

</LinearLayout>


<ListView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/list"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/list_padding"
   android:paddingRight="@dimen/list_padding" />

</LinearLayout>

在我的 mainActivity 中,我只是从谷歌示例代码中提取了这个来创建弹出菜单:

public void showPopup(View v) {
    PopupMenu popup = new PopupMenu(this, v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.actions, popup.getMenu());
    popup.show();
}

它奏效了。谢谢贡纳尔卡尔森。

于 2012-11-28T13:16:53.120 回答