【发布时间】:2021-08-31 00:40:45
【问题描述】:
您好,我想在片段中管理 BackStack 我已经实现了一个方法,但我对它不满意,因为如果我一次又一次地切换到多个片段,那么我希望那个 backstack 不要一次又一次地切换到同一个片段,然后就去每个片段向后一次,最后一次到 Home_Fragment 然后退出
例如:如果我从通知切换到配置文件并通过一次又一次按下它使其像一个循环,当我开始按下它时它也遵循我不想要的相同循环,我希望即使用户也做一个像这样的事情,后堆栈只去每个片段一次,最后去主片段并退出
就像像 instagram 或 pintrest 这样的大应用程序
这是一个代码
private final BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener =
item -> {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.nav_home:
selectedFragment = new Home_Fragment();
break;
case R.id.nav_following:
selectedFragment = new Following_Fragment();
break;
case R.id.nav_upload:
selectedFragment = new Upload_Fragment();
break;
case R.id.nav_notification:
selectedFragment = new Notification_Fragment();
break;
case R.id.nav_profile:
selectedFragment = new Profile_Fragment();
break;
}
assert selectedFragment != null;
getSupportFragmentManager().beginTransaction().addToBackStack(String.valueOf(selectedFragment)).replace(R.id.fragment_container,
selectedFragment).commit();
return true;
};
【问题讨论】:
-
您可能会发现导航组件更容易使用:developer.android.com/guide/navigation/…
-
我会说现在相当容易。 Follow this 。如果我有时间,我会为此添加一个示例,因为我自己找不到。
标签: android android-fragments fragment-backstack