如何从片段导航回活动?

时间:2016-08-03 05:39:13

标签: android android-fragments

如果我在片段中使用此代码,

ActionBar actionBar=((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true)

我收到错误。如果我在活动中,汉堡包图标看起来像这样

enter image description here

但如果我在片段中,汉堡图标会自动变为后箭头。

2 个答案:

答案 0 :(得分:0)

如果您尝试在Fragment上添加后退按钮, 只需使用

获取父活动
{{1}}

然后添加

{{1}}

这将为您的活动添加回按钮。

或者,如果您尝试自定义ActionBar,请确保使用的是AppComaptActivity。

答案 1 :(得分:0)

您使用的是导航抽屉吗?

在活动文件

中使用此功能
  setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

如果您需要使用DrawerIndicator,请使用以下代码

mDrawerToggle.setDrawerIndicatorEnabled(true);

禁用Drawerindicator

 mDrawerToggle.setDrawerIndicatorEnabled(false);

如果您想根据点击

更改Doggle按钮

使用此代码:

final View.OnClickListener originalToolbarListener = mDrawerToggle.getToolbarNavigationClickListener();

getActivity().getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
    @Override
    public void onBackStackChanged() {
        if (condition) {
            mDrawerToggle.setDrawerIndicatorEnabled(false);

            mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    getActivity().getSupportFragmentManager().popBackStack();
                }
            });
        } else {
            toolbar.setTitle("");
            mDrawerToggle.setDrawerIndicatorEnabled(true);

            mDrawerToggle.setToolbarNavigationClickListener(originalToolbarListener);
        }
    }
});