using fragment navigation, when I move temp1 to temp2 and temp2 to temp1 again, I see the fragment is generated newly. But when I use fragmentManager.replace, it reuse the fragment that I already used.
resuing code
private lateinit var binding : ActivityMainBinding
private var currentFragment: Fragment?=null
private var homeFragment = HomeFragment()
private var temp1Fragment =Temp1Fragment()
private var temp2Fragment= Temp2Fragment()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
initBottomNavItemClick()
currentFragment = homeFragment
}
private fun initBottomNavItemClick(){
binding.bottomNavigationView.setOnNavigationItemSelectedListener {
when(it.itemId){
R.id.homeFragment->{
// findNavController(R.id.navFragment).navigate(R.id.homeNavFragment)
currentFragment = homeFragment
changeFragment(this,binding.fragmentContainer,currentFragment!!)
}
R.id.tempFragment1->{
// findNavController(R.id.navFragment).navigate(R.id.temp1NavFragment)
currentFragment = temp1Fragment
changeFragment(this,binding.fragmentContainer,currentFragment!!)
}
R.id.tempFragment2->{
// findNavController(R.id.navFragment).navigate(R.id.temp2NavFragment)
currentFragment = temp2Fragment
changeFragment(this,binding.fragmentContainer,currentFragment!!)
}
}
true
}
}
So when I use fragmentManager, I can preserve the recyclerview position when I come back, but not fragment navigation. fragment navigation generates a new fragment and the position start at 0. is fragment navigation possible to keep the previous status not generating newly?