我对动作栏比较新,我正在使用actionBarSherlock库。 我知道,当您经常发生并且易于访问的操作时,操作栏的工作效果最佳。
背景
我的操作栏目前的工作原理是启用主页按钮和onCreateOptionsMenu,该菜单使用日历菜单项(不可见)和设置菜单项来扩充菜单。
我有一个主要活动,调用多个片段,如FragA,FragB,FragC。
问题:
是否可能以某种方式操纵我的菜单项来自我的片段,或者至少当它们即将以这种方式被调用时,我可以“显示”日历菜单项和句柄打电话给它?
以下是我目前的情况: actionbar_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:orientation="horizontal" >
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Stuff" />
</LinearLayout>
以下是我如何使用homeButton:
public void onResume()
{
super.onResume();
actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setIcon(R.drawable.icon_tsn);...
}
我想要使用的片段只是扩展了SherlockFragment .. 任何帮助表示赞赏...
答案 0 :(得分:1)
是否可能以某种方式操纵我的碎片中的菜单项,或者至少在以这种方式调用它们时,我可以“显示”日历菜单项并处理对它的调用?
欢迎您的片段致电setHasOptionsMenu(true)
(例如,来自onCreateView()
),此时将通过onCreateOptionsMenu()
和onOptionsItemSelected()
致电,与活动非常相似。如果片段可见,则会显示其操作栏项,否则将删除它们。
因此,典型的模式是让活动定义有效的操作栏项,而不管哪些片段是可见的,并让片段定义特定于它们的操作栏项。