핸드폰에서 상태바 영역도 화면으로 취급되기 때문에
margin 값을 주지 않으면 컴포넌트가 겹치게 되어 지저분하게 보인다.
그렇다고 일정한 margin 값을 주더라도 기기마다 상태바의 높이가 다르기 때문에
올바른 해결 방법이 될 수 없다.
아이폰의 경우 View 대신 SafeAreaView를 쓰면 간단히 해결할 수 있다.
그러나 안드로이드는 안 먹히기 때문에 다른 방법을 찾아야 한다.
이를 해결하기 위해 expo-constants를 설치하자.
npm i expo-constants
모듈에 있는 statusBarHeight 속성을 이용하면 기기의 상태바 높이를 구할 수 있다.
import Constants from 'expo-constants'; // Constants로 불러온다.
function App() {
return (
<SafeAreaView style={styles.screen}>
/* ... */
</SafeAreaView>
);
}
const styles = StyleSheet.create({
screen: {
paddingTop: Constants.statusBarHeight // Constants의 statusBarHeight 값을 이용한다.
}
});
'React Native' 카테고리의 다른 글
리액트 네이티브에서 리스트를 구현하는 방법 - FlatList (0) | 2020.08.15 |
---|---|
안드로이드와 iOS 환경에 따라서 다른 컴포넌트를 불러오는 방법 (0) | 2020.08.13 |
리액트 네이티브에서 아이콘 넣는 방법 (0) | 2020.08.13 |
핸드폰의 화면 회전에 따라 레이아웃을 다르게 만드는 방법 (0) | 2020.08.12 |
Expo 설치, React Native 프로젝트 생성 (0) | 2020.07.19 |