问题描述
我有一个 BottomNavigationView
可以在 4 Fragments
之间导航,第一个有 RecyclerView
。当我选择 BottomNavigationView
的一个项目时,我使用 replace()
方法在 Fragments
之间切换。我不明白的是为什么当我滚动 RecyclerView
时,转到另一个 Fragment
并返回带有 Fragment
的 RecyclerView
,滚动位置保持与我离开 Fragment
时相同,而不是回到 RecyclerView
的顶部。由于我使用的是 replace()
并且没有添加到后台堆栈中,因此片段不应该被重置吗?这是我的代码:
private void initializefragments() {
homeFragment = new HomeFragment();
FeedFragment = new FeedFragment();
chatFragment = new ChatFragment();
profileFragment = new ProfileFragment();
fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.fragment_container,homeFragment,"home")
.commit();
}
private void setupBottomNavigation() {
bottomNavigationView.setonNavigationItemSelectedListener(item -> {
FragmentTransaction ft = fragmentManager.beginTransaction();
if (item.getItemId() == R.id.bottom_nav_home) {
ft.replace(R.id.fragment_container,"home")
.commit();
} else if (item.getItemId() == R.id.bottom_nav_Feed) {
ft.replace(R.id.fragment_container,FeedFragment,"Feed")
.commit();
} else if (item.getItemId() == R.id.bottom_nav_chat) {
ft.replace(R.id.fragment_container,chatFragment,"chat")
.commit();
} else if (item.getItemId() == R.id.bottom_nav_profile) {
ft.replace(R.id.fragment_container,profileFragment,"profile")
.commit();
}
return true;
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)