header-img
Info :

λ‚΄κ°€ μ»€μŠ€ν…€ν•΄μ•Ό λ˜λŠ” 것

  1. μƒνƒœμ™€ 관계 없이
    1. μ•„μ΄μ½˜ vector
    2. GNB background color
    3. 각 간격 μ„€μ •
  2. active, deactive μƒνƒœμ˜
    1. μ•„μ΄μ½˜ 색상
    2. ν…μŠ€νŠΈ 색상
    3. μ• λ‹ˆλ©”μ΄μ…˜ 제거

 

μ•„μ΄μ½˜ 벑터 μ»€μŠ€ν…€

→ κ·Έλƒ₯ menu κ΄€λ ¨ xml fileμ—μ„œ μ„€μ •ν•΄μ£Όλ©΄ 됨.

 

GNB Background Color?

// <com.google.android.material.bottomnavigation.BottomNavigationView/> μ•ˆμ— λ„£μ–΄μ£Όμ–΄μ•Ό 함.
android:background="@color/Gray_1"
app:itemBackground="@color/Gray_1"

λ‘˜ λ‹€ μ„€μ •ν•΄μ£Όμ–΄μ•Ό 됨. μ•„μ΄ν…œλ§Œ μ„€μ •ν•˜λ©΄ 빈 곡간이 μžˆλŠ” 경우 μ›μΉ˜ μ•ŠλŠ” 색상이 보이게 됨.

 

μ•„μ΄μ½˜ & text 색상 μ»€μŠ€ν…€?

// <com.google.android.material.bottomnavigation.BottomNavigationView/> μ•ˆμ— λ„£μ–΄μ£Όμ–΄μ•Ό 함.
app:itemIconTint="@color/selector_menu_home_color"
app:itemTextColor*="@color/selector_menu_home_color"
//color/selector_menu_home_color 파일 

<?xml version="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
    <itemandroid:color="@color/Gray_15"android:state_checked="true" />
    <itemandroid:color="@color/Gray_9"android:state_checked="false" />
</selector>

 

μ• λ‹ˆλ©”μ΄μ…˜ 제거?

// <com.google.android.material.bottomnavigation.BottomNavigationView/> μ•ˆμ— λ„£μ–΄μ£Όμ–΄μ•Ό 함.
app:itemHorizontalTranslationEnabled="false"

이거 외에도 μ•„λž˜μ˜ 각 간격 μ„€μ • νƒ€μ΄ν‹€μ—μ„œ dimens에 μΆ”κ°€λ‘œ μ„€μ •ν•΄μ•Ό λ˜λŠ” 것듀이 있음. μ•„λž˜μ— 기둝함.

 

각 간격 μ„€μ •

<dimen name="design_bottom_navigation_active_item_max_width">168dp</dimen>
<dimen name="design_bottom_navigation_active_item_min_width">96dp</dimen>
<dimen name="design_bottom_navigation_active_text_size">14sp</dimen>
<dimen name="design_bottom_navigation_elevation">8dp</dimen>
<dimen name="design_bottom_navigation_height">56dp</dimen>
<dimen name="design_bottom_navigation_icon_size">24dp</dimen>
<dimen name="design_bottom_navigation_item_max_width">96dp</dimen>
<dimen name="design_bottom_navigation_item_min_width">56dp</dimen>
<dimen name="design_bottom_navigation_label_padding">10dp</dimen>
<dimen name="design_bottom_navigation_margin">8dp</dimen>
<dimen name="design_bottom_navigation_shadow_height">1dp</dimen>
<dimen name="design_bottom_navigation_text_size">12sp</dimen>

이게 bottom navigation κ΄€λ ¨ν•œ values.xml에 μ„€μ •λœ κ°’λ“€μž„. (μ•ˆλ“œλ‘œμ΄λ“œ λ‚΄μž₯) 근데 κ²€μƒ‰ν•΄λ³΄λ‹ˆκΉŒ m3λŠ” 더 λ§Žμ€ μ»€μŠ€ν…€ 값이 μžˆλŠ” 듯함. (m3 κ΄€λ ¨ μ»€μŠ€ν…€ κ°’ : https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/res/values/dimens.xml)

μ—¬νŠΌ λ‚˜λŠ” m3λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ‚΄κ°€ μ›ν•˜λŠ” 간격 κ°„λ ¨ν•΄ overrideν•œ κ²ƒλ§Œ λ‚˜μ—΄ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŒ.

// dimens.xml
<!-- bottom navigation custom -->
<dimen name="design_bottom_navigation_text_size" tools:override="true">10dp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">10dp</dimen>
<dimen name="design_bottom_navigation_height" tools:override="true">50dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">5dp</dimen>
  • design_bottom_navigation_text_size : μ„ νƒν•˜μ§€ μ•Šμ•˜μ„ λ•Œμ˜ ν…μŠ€νŠΈ 크기
  • design_bottom_navigation_active_text_size : μ„ νƒν–ˆμ„ λ•Œμ˜ ν…μŠ€νŠΈ 크기

μœ„μ˜ 두 값이 κ°™μœΌλ©΄ ν…μŠ€νŠΈκ°€ μ»€μ§€λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ‚¬λΌμ§€κ²Œ 됨.

  • design_bottom_navigation_height : GNB 자체의 height μ„€μ •
  • design_bottom_navigation_margin : GNB의 μ•„μ΄μ½˜ + ν…μŠ€νŠΈλ₯Ό μ•„μ΄ν…œ ν•˜λ‚˜λ‘œ 보고, 이 μ•„μ΄ν…œμ˜ λ§ˆμ§„ 값을 μ„€μ •ν•΄μ£ΌλŠ” λΆ€λΆ„μž„. μ€‘μš”ν•œ 건 ν…μŠ€νŠΈλ„ ν¬ν•¨μ΄λž€ 점…

 

'CS > Android, Kotlin' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Android] Hilt  (0) 2023.05.09
[Android] Base Activity, Fragment  (0) 2023.04.16
[Android] OKHttp3λ₯Ό μ‚¬μš©ν•œ 헀더 μΆ”κ°€, Retrofit2λ₯Ό μ‚¬μš©ν•œ http 톡신  (0) 2023.04.16
[Android] Custom View  (0) 2023.04.15
[Android] Data Binding  (0) 2023.04.15
더보기
CS/Android, Kotlin