I want the titlefragment's screen to not disappear when the bottom navigation is switched. But I write. The recyclerview data of the titlefragment will overlap twofragment and threefragment. But why is it still displayed when I have hide??
this mainactivity
class MainActivity : AppCompatActivity() {
private val titleFragment = TitleFragment()
private val twoFragment = TwoFragment()
private val threeFragment = ThreeFragment()
private val fragmentManager = supportFragmentManager
private var activeFragment: Fragment = titleFragment
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fragmentManager.beginTransaction().apply {
add(R.id.tragmentContainerView, threeFragment, "user").hide(threeFragment)
add(R.id.tragmentContainerView, twoFragment, "after").hide(twoFragment)
add(R.id.tragmentContainerView, titleFragment, "mind")
}.commit()
initListeners()
val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.tragmentContainerView) as NavHostFragment?
if (navHostFragment != null) {
val controller = navHostFragment.navController
NavigationUI.setupActionBarWithNavController(this, controller)
controller.addOnDestinationChangedListener { _, destination, _ ->
if(destination.id == R.id.titleFragment ||destination.id == R.id.twoFragment||destination.id == R.id.threeFragment) {
bottomNavigationView.visibility = View.VISIBLE
} else {
bottomNavigationView.visibility = View.GONE
}
}
}
}
private fun initListeners() {
bottomNavigationView.setOnItemSelectedListener { menuItem ->
when (menuItem.itemId) {
R.id.titleFragment -> {
fragmentManager.beginTransaction().hide(activeFragment).show(titleFragment).commit()
activeFragment = titleFragment
true
}
R.id.twoFragment -> {
fragmentManager.beginTransaction().hide(activeFragment).show(twoFragment).commit()
activeFragment = twoFragment
true
}
R.id.threeFragment -> {
fragmentManager.beginTransaction().hide(activeFragment).show(threeFragment).commit()
activeFragment = threeFragment
true
}
else -> false
}
}
}
override fun onSupportNavigateUp(): Boolean {
return super.onSupportNavigateUp()||findNavController(R.id.tragmentContainerView).navigateUp()
}
}
Please let me know if there is any shortage