Code: Select all
class MainActivity : AppCompatActivity() {
private val backStackListener = FragmentManager.OnBackStackChangedListener {
val backStackEntryCount = getSupportFragmentManager().backStackEntryCount
Log.e(TAG, "back stack count = " + backStackEntryCount.toString())
if (backStackEntryCount > 0) {
this.getSupportActionBar()?.setDisplayHomeAsUpEnabled(true)
this.getSupportActionBar()?.setDisplayShowHomeEnabled(true)
} else {
this.getSupportActionBar()?.setDisplayHomeAsUpEnabled(false)
this.getSupportActionBar()?.setDisplayShowHomeEnabled(false)
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.getItemId()){
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
return true
}
}
return super.onOptionsItemSelected(item)
}
override fun onCreate(savedInstanceState: Bundle?) {
...
getSupportFragmentManager().addOnBackStackChangedListener(backStackListener)
...
if (buttonClicked) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container_view,fragment_a).commit()
}
}
Code: Select all
...
requireActivity().getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container_view,fragment_b).addToBackStack(null).commit()
Code: Select all
back stack count = 0
Code: Select all
back stack count = 1
 Mobile version
 Mobile version