简体   繁体   English

Android保存后退片段历史记录

[英]Android save backstack fragment history

I put in backstack fragments: A->B->C->D, where A is starting fragment for activity. 我放入了堆栈片段:A-> B-> C-> D,其中A是活动的起始片段。 After pressed home button, use other apps and return in my app, activity restarted and i see fragment A. How can i save all history of backstack? 按下主页按钮后,使用其他应用程序并返回我的应用程序,活动重新启动,并且看到片段A。如何保存所有Backstack历史记录?

code example for addbackstack: addbackstack的代码示例:

FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().addToBackStack(null)                .setCustomAnimations(R.animator.slide_in_left,R.animator.slide_out_right,0,0)
            .replace(R.id.container, new SettingsContentFragment(item))
            .commit();

if it can help - i use NavigationDrawerFragment, part of my onCreate in activity: 如果有帮助的话-我使用NavigationDrawerFragment,这是我的onCreate活动的一部分:

    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
        saveToolbar = (Toolbar) findViewById(R.id.toolbar);
        if (saveToolbar != null) {
            setSupportActionBar(saveToolbar);
        }
        saveToolbar.setNavigationIcon(R.drawable.ic_ab_drawer);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);



        mNavigationDrawerFragment = (NavigationDrawerFragment)


getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
    mNavigationDrawerFragment.customSetArguments(items);
    mTitle = getTitle();
    mNavigationDrawerFragment.setUp(
        R.id.navigation_drawer,
        (DrawerLayout) findViewById(R.id.drawer_layout));

You call addToBackStack(null) method before you perform a transaction. 在执行事务之前,请调用addToBackStack(null)方法。 As a result nothing is actually added to back stack. 结果,实际上什么都没有添加到堆栈中。 Try 尝试

fragmentManager.beginTransaction()
 .setCustomAnimations(R.animator.slide_in_left,R.animator.slide_out_right,0,0)
  .replace(R.id.container, new SettingsContentFragment(item))
  .addToBackStack(null)
  .commit();

instead 代替

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM