如何在android中自定义导航?

时间:2016-07-10 17:24:21

标签: java android android-actionbar

我没有让操作栏中的导航返回到其父活动,而是希望让它返回到最后一个片段,或者只是能够改变其行为和外观。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:上传导航就像任何其他菜单项一样,除了它与id有关外是特别的:

让我添加一些代码来演示如何更改图标:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

assert toolbar != null;
toolbar.setNavigationIcon(R.drawable.close);

处理片段弹出:

//when adding your fragment to the activity, add it to back stack like this
fragmentTransaction.addToBackStack("frag1");

//inside onOptionsItemSelected(MenuItem item)
switch(item.getId()){
   case android.R.id.home:
   FragmentManager fm = getActivity().getSupportFragmentManager();
   fm.popBackStack ("frag1", FragmentManager.POP_BACK_STACK_INCLUSIVE);
   return true;
}

您可以从后堆栈中删除片段

您还可以通过在onCreate中设置不同的资源来更改图标!

<强>更新

由于片段始终存在于Activity中,因此您不必更改片段中的内容,但如果您希望片段在右侧有更多菜单项,则可以在onCreate中启用optionsMenu ()像这样:

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

    setHasOptionsMenu(true);

}

从这里开始,您可以按照通常的活动进行操作!

我希望这有帮助!