override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) bottomNavigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) if (savedInstanceState == null) { initFragments() } else { atHome = savedInstanceState.getBoolean("atHome") } } private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.navigation_home -> { supportFragmentManager.beginTransaction() .hide(active).show(mFragment0).commit() active = mFragment0 atHome = true return@OnNavigationItemSelectedListener true } R.id.navigation_profile -> { supportFragmentManager.beginTransaction() .hide(active).show(mFragment1).commit() active = mFragment1 atHome = false return@OnNavigationItemSelectedListener true } R.id.navigation_relation -> { supportFragmentManager.beginTransaction() .hide(active).show(mFragment2).commit() active = mFragment2 atHome = false return@OnNavigationItemSelectedListener true } R.id.navigation_members -> { supportFragmentManager.beginTransaction() .hide(active).show(mFragment3).commit() active = mFragment3 atHome = false return@OnNavigationItemSelectedListener true } R.id.navigation_requests -> { supportFragmentManager.beginTransaction() .hide(active).show(mFragment4).commit() active = mFragment4 atHome = false return@OnNavigationItemSelectedListener true } } false } override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.main_menu, menu) return true } /** This function will add all fragments to the fragment manager cache * and show home fragment as current page */ private fun initFragments() { //Fragment Transaction for Initial Startup supportFragmentManager.beginTransaction() .add(R.id.contentFrame, mFragment0, R.string.fragment_title_home).commit() supportFragmentManager.beginTransaction() .add(R.id.contentFrame, mFragment1, R.string.fragment_title_profile).hide(mFragment1).commit() supportFragmentManager.beginTransaction() .add(R.id.contentFrame, mFragment2, R.string.fragment_title_relation).hide(mFragment2).commit() supportFragmentManager.beginTransaction() .add(R.id.contentFrame, mFragment3, R.string.fragment_title_members).hide(mFragment3).commit() supportFragmentManager.beginTransaction() .add(R.id.contentFrame,mFragment4, R.string.fragment_title_requests).hide(mFragment4).commit() atHome = true }