ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [UI] BottomNavigationView
    Android/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

    댓글

Designed by Tistory.