[Compose] BottomNavigation 사용방법

2024. 9. 6. 21:47·📂 Android/Compose
목차
  1. BottomNavigation 사용 방법 🛠️
  2. BottomNavigation 커스터마이징 🎨
  3. BottomNavigationRail 사용 방법 🚆
  4. Window Size Class 📱
반응형

안드로이드 Compose에서 BottomNavigation은 앱의 주요 내비게이션을 제공하는 중요한 UI 컴포넌트입니다.

이 글에서는 BottomNavigation의 사용 방법, 커스터마이징 방법, 그리고 BottomNavigationRail에 대해 알아보겠습니다.

 

BottomNavigation은 화면 하단에 위치하여 사용자가 앱 내에서 다른 화면으로 쉽게 이동할 수 있도록 도와주는 UI 요소입니다. 일반적으로 여러 아이콘과 텍스트 레이블로 구성되어 있으며, 각 아이콘은 특정 기능이나 화면으로 연결됩니다.

 

BottomNavigation 사용 방법 🛠️

@Composable
fun MyBottomNavigation() {
val items = listOf("Home", "Search", "Profile")
var selectedItem by remember { mutableStateOf(items[0]) }
BottomNavigation {
items.forEach { item ->
BottomNavigationItem(
icon = { Icon(Icons.Filled.Home, contentDescription = null) },
label = { Text(item) },
selected = item == selectedItem,
onClick = { selectedItem = item }
)
}
}
}
  • BottomNavigation: 하단 네비게이션 바를 생성합니다.
  • BottomNavigationItem: 개별 네비게이션 아이템을 정의합니다.
  • selectedItem: 현재 선택된 아이템을 상태로 관리합니다.

 

 

BottomNavigation 커스터마이징 🎨

BottomNavigation의 디자인을 변경하고 싶다면, 스타일을 수정할 수 있습니다.

예를 들어, 배경색이나 선택된 아이템의 색상을 변경할 수 있습니다.

@Composable
fun CustomBottomNavigation() {
val items = listOf("Home", "Search", "Profile")
var selectedItem by remember { mutableStateOf(items[0]) }
BottomNavigation(
backgroundColor = Color.Blue,
contentColor = Color.White
) {
items.forEach { item ->
BottomNavigationItem(
icon = { Icon(Icons.Filled.Home, contentDescription = null) },
label = { Text(item) },
selected = item == selectedItem,
selectedContentColor = Color.Yellow,
unselectedContentColor = Color.Gray,
onClick = { selectedItem = item }
)
}
}
}
  • backgroundColor: 네비게이션 바의 배경색을 설정합니다.
  • selectedContentColor와 unselectedContentColor: 선택된 아이템과 선택되지 않은 아이템의 색상을 설정합니다.

 

 

BottomNavigationRail 사용 방법 🚆

BottomNavigationRail은 수직으로 배치된 내비게이션 바를 제공합니다.

이 컴포넌트는 특히 큰 화면에서 유용합니다.

@Composable
fun MyBottomNavigationRail() {
val items = listOf("Home", "Search", "Profile")
var selectedItem by remember { mutableStateOf(items[0]) }
BottomNavigationRail {
items.forEach { item ->
NavigationRailItem(
icon = { Icon(Icons.Filled.Home, contentDescription = null) },
label = { Text(item) },
selected = item == selectedItem,
onClick = { selectedItem = item }
)
}
}
}
  • BottomNavigationRail: 수직 네비게이션 바를 생성합니다.
  • NavigationRailItem: 개별 네비게이션 아이템을 정의합니다.

 

Window Size Class 📱

Dependency

androidx-material3-window-size = { group = "androidx.compose.material3", name = "material3-window-size-class-android", version.ref = "material3WindowSizeClassAndroid" }
  • 최신 버전: 1.3.0 (24.09.06 기준)

분기 처리

val windowSizeClass = calculateWindowSizeClass(this)
MyApp(windowSize = windowSizeClass)

창 크기 클래스 너비에는 Compact, Medium, Expanded 세 가지가 있습니다.

앱이 세로 모드인 경우 Compact 너비이고, 가로 모드인 경우 Expanded 너비입니다.

@Composable
fun MyApp(windowSize: WindowSizeClass){
when(windowSize.widthSizeClass){
WindowWidthSizeClass.Compact -> {
MyAppCompact() // Portrait
}
WindowSizeClass.Medium -> {
MyAppMedium()
}
WindowWidthSizeClass.Expanded -> {
MyeAppExpanded() // Landscape
}
}
}

 

Size가 Compact인 경우 BottomNavigation을 사용하고, Expanded인 경우 BottomNavigationRail를 사용하도록 하면 사용자 경험을 최적화할 수 있습니다.

반응형

'Android > Compose' 카테고리의 다른 글

[Compose] Jetpack Compose 상태 관리 기초  (0) 2024.09.08
[Compose] Android Composable Lifecycle  (0) 2024.09.08
[Compose] Slot-based Layouts  (0) 2024.09.06
[Compose] LazyListScope  (0) 2024.09.06
[Compose] State Hoisting  (0) 2024.09.05
  1. BottomNavigation 사용 방법 🛠️
  2. BottomNavigation 커스터마이징 🎨
  3. BottomNavigationRail 사용 방법 🚆
  4. Window Size Class 📱
'Android/Compose' 카테고리의 다른 글
  • [Compose] Android Composable Lifecycle
  • [Compose] Slot-based Layouts
  • [Compose] LazyListScope
  • [Compose] State Hoisting
Moondev
Moondev
공부 기록장
  • Moondev
    Moondev
    Moondev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Android
        • ViewSystem
        • Compose
      • Language
        • Kotlin
      • Review
        • 프로젝트 후기
        • Conference 후기
        • 우아한테크코스 후기
      • Etc
        • Git
        • Gradle
  • 링크

    • GitHub
  • 인기 글

  • 300x250
  • hELLO· Designed By정상우.v4.10.3
Moondev
Android / Compose / 
[Compose] BottomNavigation 사용방법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.