Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스파르타코딩클럽
- js
- 코드잇
- DB마이저널
- 자바스크립트
- 환경교육봉사
- 내일배움캠프
- DB김준기문화재단
- 알고리즘
- 코드잇앰배서더
- 코딩공부
- DB드림리더장학생
- bottom tab navigation
- GIT
- ReactNative
- 독서활동
- 르탄즈5기
- 오블완
- 코드잇TIL
- 르탄즈
- 혼공단JS
- 앱개발강의
- 혼공컴운
- 티스토리챌린지
- 오늘도코드잇
- 혼공단
- 앱개발부트캠프
- 코드잇강의추천
- c++헤더
- 내일배움캠프사전캠프
Archives
- Today
- Total
axnuo
[React Native] Bottom Tab Navigation 구현하기 본문
Bottom Tab Navigation이란?
Bottom Tab Navigation은 모바일 앱에서 화면 하단에 위치한 탭 바(Tabs)를 통해 여러 화면 간에 이동할 수 있게 해주는 내비게이션 방식입니다. 각 탭에는 아이콘과 라벨을 부여할 수 있으며, 이를 통해 사용자는 직관적으로 원하는 화면으로 전환할 수 있습니다. 이 내비게이션 방식은 특히 많은 기능을 가진 애플리케이션에서 사용자가 주요 기능들 간에 쉽게 접근할 수 있도록 도와줍니다.
여기서 잠깐. React Native의 Navigation 종류는?
React Native에서 내비게이션을 구현하는 방법에는 여러 가지가 있습니다. 그 중에서도 자주 사용되는 방법은 다음과 같습니다:
- Stack Navigation: 한 화면에서 다른 화면으로 이동할 때 새로운 화면이 기존 화면 위에 쌓이는 방식입니다. '뒤로 가기' 버튼을 눌러 이전 화면으로 돌아갈 수 있습니다.
- Drawer Navigation: 화면 왼쪽 또는 오른쪽에서 드로어(메뉴)가 슬라이드로 나타나고, 이 드로어를 통해 다른 화면으로 이동할 수 있는 방식입니다.
- Bottom Tab Navigation: 여러 화면을 하단의 탭 바를 통해 이동할 수 있는 방식으로, 주로 주요 기능들을 탭으로 나누어 제공할 때 사용됩니다.
이 중에서도 Bottom Tab Navigation은 직관적이며 사용자가 쉽게 접근할 수 있는 방식이기 때문에 많은 애플리케이션에서 사용되고 있습니다.
구현 방법
Step 1. 패키지 설치
npm install @react-navigation/native @react-navigation/bottom-tabs react-native-screens react-native-safe-area-context
Step 2. Navigation 설정
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Text, View } from 'react-native';
// 간단한 화면 컴포넌트 정의
function HomeScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Home!</Text>
</View>
);
}
function SettingsScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Settings!</Text>
</View>
);
}
// Tab Navigator 생성
const Tab = createBottomTabNavigator();
function MyTabs() {
return (
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Settings" component={SettingsScreen} />
</Tab.Navigator>
);
}
export default function App() {
return (
<NavigationContainer>
<MyTabs />
</NavigationContainer>
);
}
Step 3. 커스터마이징
function MyTabs() {
return (
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === 'Home') {
iconName = focused ? 'home' : 'home-outline';
} else if (route.name === 'Settings') {
iconName = focused ? 'settings' : 'settings-outline';
}
return <Ionicons name={iconName} size={size} color={color} />;
},
tabBarActiveTintColor: 'tomato',
tabBarInactiveTintColor: 'gray',
})}
>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Settings" component={SettingsScreen} />
</Tab.Navigator>
);
}