Вы хотите перейти к соответствующему фрагменту, когда выбрана вкладка на панели навигации. Вот как ты это делаешь.
Допустим, у нас есть MainActivity, которая имеет 3 вкладки: «Tab1», «Tab2», «Tab3».
MainActivity будет иметь 2 XML-макета: navBar и FrameLayout.
Затем вы захотите создать 3 новых фрагмента (каждый из которых имеет свою собственную разметку XML). Эти 3 фрагмента будут отображать структуру кадра, когда выбрана соответствующая вкладка панели навигации
Например:
ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ XML
<FrameLayout
android:id="@+id/mainFragment"
android:layout_width="match_parent"
android:background="#ffffff"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_nav"
android:text="@string/title_home" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="?android:attr/windowBackground"
app:menu="@menu/bottom_navigation" />
ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ КОТЛИН
class MainActivity : AppCompatActivity() {
private lateinit var manager: FragmentManager
private lateinit var transaction: FragmentTransaction
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_tab1 -> {
title = "Tab1"
manager = supportFragmentManager
transaction = manager.beginTransaction()
transaction.replace(R.id.mainFragment, Tab1Fragment())
transaction.addToBackStack(null)
transaction.commit()
return@OnNavigationItemSelectedListener true
}
R.id.navigation_tab2 -> {
title = "Tab2"
manager = supportFragmentManager
transaction = manager.beginTransaction()
transaction.replace(R.id.mainFragment, Tab2Fragment())
transaction.addToBackStack(null)
transaction.commit()
return@OnNavigationItemSelectedListener true
}
R.id.navigation_tab3 -> {
title = "Tab 3"
manager = supportFragmentManager
transaction = manager.beginTransaction()
transaction.replace(R.id.mainFragment, Tab3Fragment())
transaction.addToBackStack(null)
transaction.commit()
return@OnNavigationItemSelectedListener true
}
}
false
}
@SuppressLint("CommitTransaction")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navigation = findViewById<View>(R.id.bottom_nav) as BottomNavigationView
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
}
}