如何在导航抽屉中添加操作栏按钮?

5
我正在遇到这个问题:我正在使用ActionBar导航抽屉,但我想在菜单栏中额外添加一个按钮,类似于这些按钮: http://screenshots.en.sftcdn.net/blog/en/2013/06/notifications-b.png 这是我的XML文件:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/drawer_layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >

<FrameLayout
     android:id="@+id/content_frame"
     android:layout_width="match_parent"
     android:layout_height="match_parent" />
     <!-- The navigation drawer -->
<ListView
     android:id="@+id/left_drawer"
     android:layout_width="240dp"
     android:layout_height="match_parent"
     android:layout_gravity="start"
     android:background="#111"
     android:choiceMode="singleChoice"
     android:divider="@android:color/transparent"
     android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>

所以,我知道添加按钮的方法大概是这样的:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
</menu>

但是我仍然不知道如何适应这两部分,有人可以帮帮我吗?
2个回答

2
在您的Activity_Main中,或者是您的主activity,您调用以下代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.YOUR_MENU, menu);
    super.onCreateOptionsMenu(menu,inflater);
}

YOUR_MENU是您想要的选项菜单/操作栏。

如果您想要添加另一个按钮,或者根据frame_layout/drawer layout内的特定片段个性化按钮,则在片段中,在onCreateView中添加以下内容:

setHasOptionsMenu(true);

这告诉活动您将要修改选项菜单。
然后:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.YOUR_NEW_MENU, menu);
    super.onCreateOptionsMenu(menu,inflater);
}

无论 YOUR_NEW_MENU 包含哪些项目,它们都将被添加到选项菜单/操作栏中。


1

您是否将此菜单项映射到您的活动?如果没有,您需要在活动中重写onCreateOptionsMenu并在那里填充它。

您可以阅读关于菜单的tutorial


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接