728x90
반응형
Bottom Navigation을 연결하는 중 setOnNavigationItemSelectedListener deprecated라고 나와 대응 방법을 기록한다.
연결하려고 보면 NavigationItem~~~ 관련 함수들이 다 deprecated 되었다.
아래와 같이 나온다.
위의 setOnNavigationItemSelectedListener를 사용하면 onNavigationItemSelected를 override 할 수 있지만
방법이 바뀌어서 이제 오버라이드를 하지 않고 사용해도 된다.
검색해 봐도 왜 없어진 건지 찾을 수 없었다... 음
해결 방법은 setOnItemSelectedListener 를 사용해서 대체해준다.
Before
private fun initNav() = with(binding) {
bottomNav.setOnNavigationItemSelectedListener(this@MainActivity)
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.menu_home -> {
showFragment(HomeFragment.newInstance(), HomeFragment.TAG)
true
}
R.id.menu_my -> {
showFragment(MyFragment.newInstance(), MyFragment.TAG)
true
}
else -> false
}
}
After
- setOnItemSelectedListener를 사용
private fun initNav() = with(binding) {
bottomNav.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.menu_home -> {
showFragment(HomeFragment.newInstance(), HomeFragment.TAG)
true
}
R.id.menu_my -> {
showFragment(MyFragment.newInstance(), MyFragment.TAG)
true
}
else -> false
}
}
}
더 간결해진 것 같다.
728x90
반응형