Android 具有自己的actionbar项的片段

Android 具有自己的actionbar项的片段,android,android-fragments,android-actionbar,actionbarsherlock,menuitem,Android,Android Fragments,Android Actionbar,Actionbarsherlock,Menuitem,我已经找了几个小时了,但我找不到这份工作: 我有两个片段,我在动作栏的每个片段中添加了一个不同的菜单项。 正如你所见,它正在工作,但我想要的是,一个项目停留在他的片段“框架”(但仍在动作栏中)项目应该分开,并停留在他们自己的片段顶部,如下图所示 我已经读过,我需要在每个片段的onCreate()方法中调用setHasOptions菜单,但它仍然不能像我所希望的那样工作 这是我的密码: MainActivity(托管我的2个片段) activity_main.xml <LinearLay

我已经找了几个小时了,但我找不到这份工作:

我有两个片段,我在动作栏的每个片段中添加了一个不同的菜单项。

正如你所见,它正在工作,但我想要的是,一个项目停留在他的片段“框架”(但仍在动作栏中)项目应该分开,并停留在他们自己的片段顶部,如下图所示

我已经读过,我需要在每个片段的onCreate()方法中调用setHasOptions菜单,但它仍然不能像我所希望的那样工作

这是我的密码:

MainActivity(托管我的2个片段)

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

     <LinearLayout
      android:id="@+id/frag1"
      android:layout_height="match_parent"
      android:layout_width="match_parent"
      android:layout_weight="1"
      >
     </LinearLayout>

     <LinearLayout
      android:id="@+id/frag2"
      android:layout_height="match_parent"
      android:layout_width="match_parent"
      android:layout_weight="1"
      >
     </LinearLayout>

</LinearLayout>
Frag2.java

public class Frag2 extends SherlockFragment{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.frag_content2, container, false);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    super.onCreateOptionsMenu(menu, inflater);
    menu.add(5, 15, 101, "Frag 2").setTitle("MENU ITEM 2").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);


   }

}
片段的布局是包含文本视图的简单线性布局

有人能告诉我正确的解决方法吗

这些项目应该分开,并停留在自己的片段顶部,如下图所示

这是不受支持的,而且是违反法律的。另外,请看Google工程师特别指出这些操作栏问题的地方(大约在14:10)

public class Frag1 extends SherlockFragment{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.frag_content, container, false);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    super.onCreateOptionsMenu(menu, inflater);
    menu.add(0, 12, 1, "Frag 1").setTitle("MENU ITEM 1").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);


   }

}
public class Frag2 extends SherlockFragment{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.frag_content2, container, false);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    super.onCreateOptionsMenu(menu, inflater);
    menu.add(5, 15, 101, "Frag 2").setTitle("MENU ITEM 2").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);


   }

}