본문 바로가기

Mobile/Android

[ Android ] BottomNavigation Icon 설정

반응형

BottomNavigation에서 기본적으로 menu에 icon 이미지만 넣었을 경우,
클릭했을 때 아이콘의 컬러가 기본 테마색으로 변경된다. (커스텀으로 컬러 변경 가능)

그렇다면 클릭했을 때, 원하는 이미지로 변경하기 위해서는 어떻게 해야할까?
아래와 같이 selector를 사용해서 구현하면 된다.

 

selector_menu_icon.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon" android:state_checked="false"/>
    <item android:drawable="@drawable/icon_fill" android:state_checked="true"/>
</selector>

보통은 아이콘 비활성하/활성화 구조이기 때문에
클릭 전에는 비활성화 아이콘을, 클릭 후에는 활설화된 아이콘이 되도록 설정한다.

 

 

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/item_home"
        android:icon="@drawable/selector_menu_icon"
        android:title="@string/item_example" />
</menu>
 

그 다음 중요한 부분인데, 아이콘이 테마색으로 변경되는 것을 막기위해서는 Tint를 초기화 해야한다.

bottomNavigationView.setItemIconTintList(null);

 

그 외 title 숨기기 (<BottomNavigation /> 에 추가)

app:labelVisibilityMode="unlabeled"

 

 

대부분 내비게이션을 처리는 이렇게 되어있기 때문에 잘 알아두면 좋을 듯하다.

 

반응형