-
[UI] BottomNavigationViewAndroid/UI 2021. 11. 10. 15:33
BottomNavigationView의 아이템을 설정하려면 메뉴 리소스 인플레이션을 통해 사용해야한다.
app:menu속성을 통해 메뉴 리소스 인플레이션
- BottomNavigationView 클래스
BottomNavigationView의 리스터 메서드들이 deprecated되어
Super 클래스인 NavigationBarView 클래스의 리스너를 사용해야한다.
- NavigationBarView 클래스
메뉴 관련
메뉴 리소스 인플레이션 ( int 메뉴 리소스 )
app:menu를 설정하지 않았으면 inflateMenu를 통해 코드상에서 NavigationBarView에 사용될 메뉴를 인플레이션한다.
(Existing items in the menu will not be modified or removed.)
nagivation bar에 설정된 Menu를 리턴
navigation bar에 설정된 Menu를 교체하고 싶으면
Menu#clear() 을 통해 메뉴를 클리어하고 NavigationBarView#inflateMenu()를 사용해야 한다.
리스너 관련
메뉴 아이템 선택 리스너
메뉴 아이템 재선택 리스너
메뉴 아이템 클릭 동작
처음 보여질때 눌려있는 위치를 정할 수 있다. ( Button의 performClick 과 유사 )
itemId에 해당하는 메뉴 아이템이 존재하지 않는 경우 기존의 선택상태를 유지
눌려있는 메뉴 아이템을 가져올 수 있다.
메뉴 설정되어있지 않으면 0 리턴
이외에 라벨, 리플, 백그라운드, 틴트, 아이콘 등등의 메서드가 있다.
- NavigationBarView.OnItemSelectedListener 인터페이스
- NavigationBarView.OnItemReselectedListener 인터페이스
코드
인터페이스 상속
class MainActivity : AppCompatActivity(), NavigationBarView.OnItemSelectedListener , NavigationBarView.OnItemReselectedListener { //..........
인터페이스 메서드 오버라이딩
override fun onNavigationItemSelected(item: MenuItem): Boolean { return when (item.itemId) { ........ 메뉴 아이템마다 수행될 코드 작성
onStart 리스너 등록
NavigationBarView#setOnItemSelectedListener(this) NavigationBarView#setOnItemReselectedListener(this)
onStop 리스너 해제
NavigationBarView#setOnItemSelectedListener(null) NavigationBarView#setOnItemReselectedListener(null)
'Android > UI' 카테고리의 다른 글
[UI] ActionMode, OptionMenu 재설정 (0) 2021.10.05 [UI] Contextual App bar (ActionMode) (0) 2021.10.04 [UI] RatingBar (0) 2021.09.27 [UI] 스타일과 테마 - 1 (0) 2021.09.24 [UI] Context Menu 사용법 (0) 2021.09.18