BottomNavigationView의 아이템 사이즈 수정하는 법(수정)

너 오늘 코드 짰니?·2022년 2월 18일
0

Android

목록 보기
8/12
<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/main_bnv"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:itemIconSize="40dp"
    android:theme="@style/Widget.BottomNavigationView"
    app:itemTextColor="@color/black"
    app:itemBackground="@color/white"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:menu="@menu/bottom_nav_menu" />

BottomNavigationView 를 사용할 때 위와같이 선언해서 사용할거다.
이 때 itemIconSize로 아이콘 사이즈를 설정해줄 텐데 아이콘 크기만 바뀌어서 이를 키우게 되면 label과 icon이 겹쳐 보이게 되는 현상이 발생했다.

이렇게 말이다
itemIconSize를 키우던, 아이콘 drawable 자체를 키우던, 저 라벨과 아이콘이 합쳐진 하나의 아이템 크기는 변하지 않아서 아이콘 크기가 커지니까 텍스트와 겹쳐지는듯 했다.
(아이콘 크기를 줄이면 안겹치고 잘 나온다.)
하지만 아이콘 크기를 줄이기는 싫었고 구글링을 해본 결과 답을 찾았다.

	<dimen name="design_bottom_navigation_text_size" tools:override="true">16sp</dimen>
    <dimen name="design_bottom_navigation_active_text_size" tools:override="true">20sp</dimen>
    <dimen name="design_bottom_navigation_height" tools:override="true">70dp</dimen>

dimens.xml파일에 다음과 같은 코드를 추가해 주면 navigationView의 기본 속성값을 바꿀 수 있다.
textSize의 경우 label의 사이즈를 변경하는 것이고 navigationHeight를 변경해준 결과 텍스트가 겹치지 않고 잘 나왔다.

앞으로 bottomNavigation 자체에 지정된 속성값을 바꿀 때에는 dimens 파일에서 오버라이딩 해주자.

+) 저같은 경우는 위 프로젝트를 진행할 때 전체 폰트를 기본폰트가 아닌 NotoSans_Bold 폰트로 설정해서 Theme를 커스텀했기 때문에 위와같은 이슈가 발생한것 같습니다. 이후에도 폰트위치가 위아래로 불규칙하게 바뀌는 등의 이슈가 일어나 BottomNavigationView에 한해서만 폰트적용을 해제하였더니 모두 잘 동작하였습니다. BottomNavigation에는 폰트설정을 넣지 않는 것이 좋을것 같다는 생각이 듭니다.

profile
안했으면 빨리 백준하나 풀고자.

0개의 댓글