2022.10.25 - [Android/React-Native] - [React-Native] Drawer Navigation
[React-Native] Drawer Navigation
모듈 설치 npm install @react-navigation/drawer @react-navigation/native babel.config.js 파일에 아래 코드 추가 module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: ['react..
hyemzzi.tistory.com
Drawer Navigation을 만드는 건 이전 글을 참고해주세요!
Drawer를 커스텀하는 것은 간단하다. 우선 원하는 디자인대로 코드를 짠다.
Drawer에 있는 버튼을 누르면 해당 화면으로 이동해야 하니 navigation을 추가해줬다.
const CustomDrawer = () => {
  const navigation = useNavigation();
  return (
    <SafeAreaView style={{ flexDirection: 'row', marginTop: 80 }}>
      <TouchableOpacity style={styles.container} onPress={() => navigation.navigate('Home')}>
        <Text>
          홈
        </Text>
      </TouchableOpacity>
      <TouchableOpacity style={styles.container} onPress={() => navigation.navigate('Settings')}>
        <Text>
          설정
        </Text>
      </TouchableOpacity>
    </SafeAreaView>
  )
}
그리고 Drawer.Navigator에 아래처럼 추가해주면 된다.
<Drawer.Navigator drawerContent={() => <CustomDrawer />}
실행화면

전체 코드
import React from 'react';
import { createDrawerNavigator } from '@react-navigation/drawer';
import { NavigationContainer, useNavigation } from '@react-navigation/native';
import { StyleSheet, TouchableOpacity, Text, SafeAreaView } from 'react-native';
import Home from './src/Home';
import Settings from './src/Settings';
const CustomDrawer = () => {
  const navigation = useNavigation();
  return (
    <SafeAreaView style={{ flexDirection: 'row', marginTop: 80 }}>
      <TouchableOpacity style={styles.container} onPress={() => navigation.navigate('Home')}>
        <Text>
          홈
        </Text>
      </TouchableOpacity>
      <TouchableOpacity style={styles.container} onPress={() => navigation.navigate('Settings')}>
        <Text>
          설정
        </Text>
      </TouchableOpacity>
    </SafeAreaView>
  )
}
const App = () => {
  const Drawer = createDrawerNavigator();
  return (
    <NavigationContainer>
      <Drawer.Navigator
        drawerContent={() => <CustomDrawer />}
        initialRouteName="Home">
        <Drawer.Screen name="Home" component={Home} />
        <Drawer.Screen name="Settings" component={Settings} />
      </Drawer.Navigator>
    </NavigationContainer>
  )
};
const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    borderColor: '#999',
    borderWidth: 1,
    paddingVertical: 30,
    borderRadius: 10,
    marginHorizontal: 2
  }
})
export default App;
'Android > React-Native' 카테고리의 다른 글
| [React-Native] Tob Tabs Navigation 사용하기 (0) | 2022.10.29 | 
|---|---|
| [React-Native] Hook (0) | 2022.10.27 | 
| [React-Native] Drawer Navigation (0) | 2022.10.25 | 
| [React-Native] Stack과 Tab Navigation 같이 쓰기 (0) | 2022.10.22 | 
| [React-Native] Stack Navigation (0) | 2022.10.20 | 
										
									
										
									
										
									
										
									
댓글