
SafeAreaView๋ React Native์์ iOS๋ Android์ ๋
ธ์น ์์ญ, ์ํ๋ฐ, ํ๋จ ํ ์ธ๋์ผ์ดํฐ ๋ฑ์ ํผํด ์์ ํ ์์ญ ์์์๋ง UI๋ฅผ ๊ทธ๋ฆฌ๋๋ก ๋์์ฃผ๋ ์ปดํฌ๋ํธ์
๋๋ค.
SafeAreaView๋ iOS์ safe area ๊ฐ๋
๊ณผ ๋์ผํ๊ฒ,
๊ธฐ๊ธฐ ํ๋ฉด์ ์/์๋ ๊ฐ์ฅ์๋ฆฌ ์์ญ์ ํผํด ์ฝํ
์ธ ๊ฐ ์๋ฆฌ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด:
import { SafeAreaView, Text, StyleSheet } from "react-native";
export default function App() {
return (
<SafeAreaView style={styles.root}>
<Text>Hello, Safe Area!</Text>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
root: {
flex: 1,
backgroundColor: "#fff",
},
});
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
โ
flex: 1 | SafeAreaView๋ ์ ์ฒด ํ๋ฉด์ ๋ฎ๋๋ก ์ค์ ํด์ผ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ผญ flex: 1์ ์ง์ ํด์ผ ํฉ๋๋ค. |
| ๐ซ Android | ์๋๋ก์ด๋์์๋ SafeAreaView๊ฐ ์ ๋๋ก ์๋ํ์ง ์์ ์ ์์ต๋๋ค (API 28 ์ดํ ๋ฑ) |
| ๐ ๋์ | react-native-safe-area-context ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ SafeAreaView ๋๋ useSafeAreaInsets()๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์์ ์ ์
๋๋ค. |
npm install react-native-safe-area-context
import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";
export default function App() {
return (
<SafeAreaProvider>
<SafeAreaView style={{ flex: 1 }}>
<Text>์ปจํ
์ธ </Text>
</SafeAreaView>
</SafeAreaProvider>
);
}
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ iOS/Android ๋ชจ๋ ๋ ์ ์ง์ํ๊ณ , ์ค์ฒฉ ๊ตฌ์กฐ์์๋ ์๋์ด ์์ ์ ์ ๋๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ๋ชฉ์ | ๋ ธ์นยท์ํ๋ฐ ๋ฑ UI ์นจ๋ฒ ๋ฐฉ์ง |
| iOS ์ง์ | ๊ธฐ๋ณธ SafeAreaView๋ก ์ถฉ๋ถํฉ๋๋ค |
| Android ์ง์ | react-native-safe-area-context ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค |
| ์คํ์ผ | ๋ฐ๋์ flex: 1์ ์ ์ฉํด์ผ ์ ์ฒด ์์ญ์ ์์ ํ๊ฒ ์ปค๋ฒํ ์ ์์ต๋๋ค |