是否可以从单独的片段操作操作栏?

时间:2013-07-03 17:13:05

标签: android android-fragments actionbarsherlock menuitem

我对动作栏比较新,我正在使用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 .. 任何帮助表示赞赏...

1 个答案:

答案 0 :(得分:1)

  

是否可能以某种方式操纵我的碎片中的菜单项,或者至少在以这种方式调用它们时,我可以“显示”日历菜单项并处理对它的调用?

欢迎您的片段致电setHasOptionsMenu(true)(例如,来自onCreateView()),此时将通过onCreateOptionsMenu()onOptionsItemSelected()致电,与活动非常相似。如果片段可见,则会显示其操作栏项,否则将删除它们。

因此,典型的模式是让活动定义有效的操作栏项,而不管哪些片段是可见的,并让片段定义特定于它们的操作栏项。