0

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

4

1 回答 1

1

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

欢迎您的片段调用setHasOptionsMenu(true)(例如, from onCreateView()),此时它将使用onCreateOptionsMenu()and调用onOptionsItemSelected(),就像活动一样。如果片段可见,则其操作栏项目将出现,否则将被删除。

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

于 2013-07-03T17:23:09.000 回答