모바일 이야기

[React Native] Drawer Navigation에서 헤더 없이 Icon만 만들기

콘요맘떼 2022. 2. 4. 18:16

React Navigation v6 기준 Drawer Navigation의 헤더가 있는 것이 디자인적으로 너무 마음에 안 들어서 헤더 자체를 삭제 후 Drawer Icon만 따로 만들어주기로 했다.

 

우선 Drawer Icon을 만들어준다. 본 예시에서는 react-native-vector-icons의 bars 아이콘(햄버거 icon 모양)을 활용했다.

useNavigation 훅을 사용하면 props로 전달받지 않아도 navigation을 사용할 수 있다.

Drawer Icon은 항상 화면의 우측 상단에 고정된 위치에 존재해야 하므로 position : absolute를 활용하였다.

 

 

이어서 각 스크린의 내용을 감싸줄 DrawerScreenContainer을 만들어준다.

DrawerIcon을 가장 하단에 위치시킨 이유는 z-index를 설정하지 않고도 가장 높은 레이어에 아이콘을 위치시키기 위해서이다. 그렇지 않으면 다른 컴포넌트들에 의해 Drawer Icon이 사용자에게 노출되지 않는 문제가 발생한다.

 

 

마지막으로 각 스크린의 내용을 DrawerScreenContainer로 감싸주면 된다. 

Drawer Screen Component의 예시

 

화면에서 보이는 결과물은 다음과 같다.