替换片段

时间:2017-05-10 20:23:39

标签: android android-fragments bottomnavigationview

我在一个活动中实现了底部导航视图,我用它在片段之间导航。显然,在片段之间切换时会有一些奇怪的行为。每当我退出我的应用程序并使用其他帐户登录时。偶尔显示前帐户的详细信息。当我连续切换到相同的片段时会发生这种情况。我正在使用的数据库是领域,所有数据通常在注销时被清除。我已经验证了。每当我注销时,使用finish()销毁带有片段的活动。那么我是如何使用来自先前帐户的数据获取片段的呢?删除父活动后,片段是否留在堆栈事件中?问题真的很烦,因为我无法解释原因。替换片段的代码如下:

FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction transaction = fragmentManager.beginTransaction();
            boolean initialSync = Preferences.getBoolean(MainActivity.this, "initialSync");
            if (!initialSync && item.getItemId() != R.id.navigation_logout) {
                InitialSyncFragment fragment = new InitialSyncFragment();
                transaction.replace(R.id.content, fragment);
                transaction.commit();
                return true;
            }

            getFirstName();

            switch (item.getItemId()) {
                case R.id.navigation_home:
                    transaction.replace(R.id.content, new HomeFragment());
                    break;
                case R.id.navigation_grades:
                    transaction.replace(R.id.content, new GradesFragment());
                    break;
                case R.id.navigation_finances:
                    transaction.replace(R.id.content, new FinancesFragment());
                    break;
                case R.id.navigation_info:
                    transaction.replace(R.id.content, new InfoFragment());
                    break;
                case R.id.navigation_logout:
                    logout();
                    break;
            }
            transaction.commit();
            return true;

0 个答案:

没有答案