如何在NavigatorActivity的上下文中使用ActionBarActivity?

时间:2015-03-15 21:43:55

标签: android android-fragments android-actionbar uinavigationbar contextual-action-bar

我正在尝试将Google's sample app code for a Navigation Drawer activity改编为我自己的应用,但我想要替换片段部分的活动是ActionBarActivity。我需要能够在每个(片段)中使用唯一的操作栏,并使用抽屉整体导航。我研究过并发现虽然ActionBarActivity扩展了FragmentActivity,但尝试编码Fragment fragment = new PlanetFragment();是一个很大的禁忌。如果那段代码看起来很荒谬,请原谅我的天真,我知道这可能。

编辑:我现在意识到片段活动不是我想要的,而是片段。

基本上我不明白如何适应:

Fragment fragment = new PlanetFragment();
    Bundle args = new Bundle();
    args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position);
    fragment.setArguments(args);

    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();

允许我使用预先编码的ActionBarActivity作为片段。谢谢!

编辑:我开始看到NavigatorActivity本身扩展ActionBarActivity,并且可能会根据显示的任何片段更改操作栏。然而,我仍然不太明白动作栏如何具有相同/不同的按钮并且对每个相应的片段具有不同的功能。

1 个答案:

答案 0 :(得分:0)

正常设置导航抽屉。如果你想在每个片段中都有一个新的动作栏,只需要调用

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    menu.clear();
    inflater.inflate(R.menu.menu_fragmentTwo, menu);  
}

在每个片段中进行此操作将为您提供新的可能性。如果你想要进行persolize,那就去onCreate();

Ps:我看到你有点混淆NavigationDrawer的工作方式。只需创建一个ActionBarActivity来扩展NavigationDrawer,并在每次点击NavigationDrawer时检索一个片段。使用起来非常简单。

如果使用Android Studio,请转到文件/导入示例并选择NavigationDrawer示例,它将帮助您理解它。