我遇到了这个问题:我正在使用操作栏导航抽屉,但我想在菜单栏中添加一个按钮,就像这些按钮: 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>
但我仍然不知道如何适应这两个部分,有人可以帮助我吗?
答案 0 :(得分:2)
在您的Activity_Main或您的主要活动中,您可以致电:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.YOUR_MENU, menu);
super.onCreateOptionsMenu(menu,inflater);
}
YOUR_MENU是您想要的选项菜单/操作栏。
如果你想添加另一个按钮,或者根据frame_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 :(得分:1)
您是否将此菜单项映射到您的活动?如果不是,您需要覆盖活动中的onCreateOptionsMenu
并在那里充气。
您可以在菜单上阅读此tutorial。