반응형
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"
대부분 내비게이션을 처리는 이렇게 되어있기 때문에 잘 알아두면 좋을 듯하다.
반응형
'Mobile > Android' 카테고리의 다른 글
[ Android ] Activity Fragment 데이터 전달 (0) | 2023.07.21 |
---|---|
[ Android ] 한 눈에 보는 Activity Flag 액티비티 플래그 (0) | 2023.07.21 |
[ Android ] 배경색 그라데이션 효과 (0) | 2021.03.22 |
[ Android ] Cannot call this method in a scroll callback (0) | 2021.03.16 |
[ Android ] 소프트스퀘어드를 마치며 (2) | 2020.11.15 |