
- app/build.gradle에서 뷰 바인딩을 사용하기 위해 viewBinding만 추가해 줍니다.
android { ... buildFeatures { viewBinding true } }- res/menu에 BottomNavigation에 사용할 메뉴를 생성
3.MainActivity//menu_bottom_nav.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/fragment_home" android:title="홈" android:icon="@drawable/ic_home"/> <item android:id="@+id/fragment_search" android:title="검색" android:icon="@drawable/ic_search"/> <item android:id="@+id/fragment_favorite" android:title="즐겨찾기" android:icon="@drawable/ic_favorite"/> <item android:id="@+id/fragment_settings" android:title="설정" android:icon="@drawable/ic_settings"/> </menu>
class MainActivity : AppCompatActivity() {
private val binding: ActivityMainBinding by lazy {
ActivityMainBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
setBottomNavigationView()
// 앱 초기 실행 시 홈화면으로 설정
if (savedInstanceState == null) {
binding.bottomNavigationView.selectedItemId = R.id.fragment_home
}
}
fun setBottomNavigationView() {
binding.bottomNavigationView.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.fragment_home -> {
supportFragmentManager.beginTransaction().replace(R.id.main_container, HomeFragment()).commit()
true
}
R.id.fragment_search -> {
supportFragmentManager.beginTransaction().replace(R.id.main_container, SearchFragment()).commit()
true
}
R.id.fragment_favorite -> {
supportFragmentManager.beginTransaction().replace(R.id.main_container, FavoriteFragment()).commit()
true
}
R.id.fragment_settings -> {
supportFragmentManager.beginTransaction().replace(R.id.main_container, SettingsFragment()).commit()
true
}
else -> false
}
}
}
}