๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

[React Native] 03-4 ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์น˜ ๊ด€๋ จ ์Šคํƒ€์ผ ์†์„ฑ ํƒ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[React Native] 03-4 ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์น˜ ๊ด€๋ จ ์Šคํƒ€์ผ ์†์„ฑ ํƒ๊ตฌํ•˜๊ธฐ

adorableco 2023. 9. 4. 14:21
๋ฐ˜์‘ํ˜•

flex:1 ๊ณผ height: '100%'์˜ ์ฐจ์ด

const styles = StyleSheet.create({
  view: {
    flex: 1,
    height: '100%',
    padding: 5,
    backgroundColor: MD2Colors.lightBlue500,
  },
  text: {fontSize: 20, color: 'white'},
})

flex: 1 โžก๏ธ ํ˜•์ œ ์š”์†Œ์˜ ๋†’์ด๊ฐ€ ๋ฐ˜์˜๋œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ๋†’์ด์˜ ์—ฌ๋ถ„์„ ๊ฐ€์ ธ์˜ด

height: '100%' โžก๏ธ ํ˜•์ œ ์š”์†Œ์˜ ๋†’์ด์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ๋†’์ด๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ด

โœ…๋ฃจํŠธ view์˜ Dimensions.get('window').height ์™€ ๊ฐ™์€ ๊ฒƒ

 

<์Šคํƒ€์ผ ์†์„ฑ ์ •๋ฆฌ>

 

flexDirection ์Šคํƒ€์ผ ์†์„ฑ

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ณ ์ •์ผ ๋•Œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž์‹ ์˜ ์˜์—ญ์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋ฒ•

โžก๏ธ 'row' (๊ฐ€๋กœ) ์™€ 'column'(์„ธ๋กœ) ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ

โœ… ๊ธฐ๋ณธ๊ฐ’์€ 'column'

 

alignItems ์Šคํƒ€์ผ ์†์„ฑ

๋ถ€๋ชจ ์š”์†Œ์˜ ๋†’์ด๋‚˜ ๋„“์ด์— ์—ฌ๋ถ„์ด ์žˆ์„ ๋•Œ ์ด ์—ฌ๋ถ„์„ ์ด์šฉํ•˜์—ฌ ์ž์‹ ์š”์†Œ์˜ ๋ฐฐ์น˜ ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ

โžก๏ธ left, center, right, stretch

 

justifyContent ์Šคํƒ€์ผ ์†์„ฑ

์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์˜ ๊ณต๊ฐ„ ๋„“์ด๋ฅผ ๋ถ„๋ฐฐํ•˜๋Š” ๋ฐฉ๋ฒ•

โžก๏ธ flex-start, center, flex-end, space-around, space-between, space-evenly

 

flexWrap ์Šคํƒ€์ผ ์†์„ฑ

์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ™”๋ฉด ์•ˆ์— ์ œ๋Œ€๋กœ ๋“ค์–ด์˜ค๋„๋ก ์‚ฌ์šฉ

โžก๏ธ nowrap, wrap, wrap-reverse

โœ… ๊ธฐ๋ณธ๊ฐ’์€ nowrap

 

overflow ์Šคํƒ€์ผ ์†์„ฑ

์ „์ฒด ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ๊ฐ€ ์ปดํฌ๋„ŒํŠธ ํฌ๊ธฐ๋ณด๋‹ค ํด ๋•Œ ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ

โžก๏ธ visible, hidden, scroll

โœ… ๊ธฐ๋ณธ๊ฐ’์€ visible  ๐Ÿ”† ์ปดํฌ๋„ŒํŠธ ๋ฐ”๊นฅ์ชฝ์œผ๋กœ๋„ ๋ Œ๋”๋ง๋จ

โœ… scroll ์„ ์„ค์ •ํ•œ๋‹ค๊ณ  ์Šคํฌ๋กค ํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ XX

 

ScrollView์˜ contentContainerStyle ์†์„ฑ

  • ScrollView๋Š” style ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ contentContainerStyle ์†์„ฑ๋„ ์ œ๊ณตํ•จ
  • โžก๏ธ ์Šคํฌ๋กค ๋Œ€์ƒ ์ฝ˜ํ…์ธ  ์ปดํฌ๋„ŒํŠธ์— ์ ์šฉ๋˜๋Š” ์†์„ฑ

โœ… flex ์†์„ฑ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ์Šคํฌ๋กค์ด ์ •์ƒ ์ž‘๋™ํ•จ

 

left, right top, bottom ๊ณผ position ์Šคํƒ€์ผ ์†์„ฑ

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

โœ… position ์Šคํƒ€์ผ ์†์„ฑ๊ฐ’์„ 'absolute'๋กœ ์ง€์ •ํ•ด์•ผ ํ•จ

ex) left: 10์œผ๋กœ ์„ค์ • ์‹œ ์ปดํฌ๋„ŒํŠธ ์™ผ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ 10ํ”ฝ์…€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™/ right: 10์œผ๋กœ ์„ค์ • ์‹œ ์ปดํฌ๋„ŒํŠธ ์˜ค๋ฅธ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ 10ํ”ฝ์…€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™

 

 

<ํ™”๋ฉด์— ๋œฌ ํšจ๊ณผ ์ฃผ๋Š” ๋ฒ•>

 

ํ™”๋ฉด์— ๋œฌ ํšจ๊ณผ๋ฅผ ์ฃผ๋ ค๋ฉด ์•„์ด์ฝ˜์ด SafeAreaView์˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์ด๋ฉด ์•ˆ๋จ

 

โœ… Fragment ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ

import React, {Fragment} fron 'react'

โžก๏ธ ์‹ค์ œ ์กด์žฌํ•˜์ง€๋Š” ์•Š์ง€๋งŒ XML ๋ฌธ๋ฒ•์ด ์š”๊ตฌํ•˜๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์ปดํฌ๋„ŒํŠธ

โžก๏ธ <Fragment> </Fragment> ๋Œ€์‹  <></>์œผ๋กœ ๋‹จ์ถ• ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

๋ฐ˜์‘ํ˜•