React Native flex 속성, 단조 배치, 고정 요소 배치 방법
Style 속성 정보
CSS와 같은 속성 그룹이지만 CSS와 다를 수 있습니다.
등등.
그래서, flex 프로퍼티를 해설하는 것과 동시에, 단조나 고정 요소의 배치 방법을 써 가고 싶습니다.
flex 속성 정보
샘플 코드 등을 보면 flex:1이라는 설명을 잘 볼 수 있습니다.
flex 속성은 화면에 대한 요소의 flexDirection 방향의 크기 비율입니다.
import {StyleSheet} from 'react-native';
const style = StyleSheet.create({
container:{
marginTop:20,
flex:1,
//flexDirection:'column' ##defaultValue
}
});
위의 경우에 화면에 flex:1의 요소를 추가해 나가면 거동은 아래와 같이 됩니다.
하나만 요소가 있을 때는 화면 눈 한 잔에 요소가 퍼집니다.
2개 이상의 요소가 있을 때는 요소의 크기는 균등할 수 있습니다. 이는 추가되는 요소의 flex 값이 같기 때문입니다.
이어서
import {StyleSheet} from 'react-native';
const style = StyleSheet.create({
container:{
marginTop:20,
flex:1,
//flexDirection:'column' ##defaultValue
}
});
와 같이 요소를 추가해 나가면 거동은 아래와 같습니다.
그러면 다음은 균등할 수 없습니다. 이것은 2개의 요소가 있는 경우는 1:2의 비율로, 3개의 요소가 있는 경우는 1:2:3의 비율로・・・라고 하는 상태에 표시되고 있기 때문입니다.
flexDirection:'row'
의 경우의 거동은 아래와 같습니다. 이때도 최초의 gif 애니메이션과 마찬가지로 flex:1의 요소를 추가하고 있습니다.
이상과 같이 flex 프로퍼티는 flexDirection에 대한 비율을 결정하는 프로퍼티입니다.
flex 속성에는 소수도 사용할 수 있지만 기본 사양은 동일합니다.
flex를 이용한 배치 방법으로 헤더, 바닥글, 사이드바를 놓는다
flex를 이용한 배치 방법을 사용함으로써 단조롭게 배치시킬 수 있습니다.
구체적으로
<View style={{flex:1}}>
{/*ヘッダー(赤)*/}
<View style={[{flex:0.3},header]}>
<Text style={textStyle}>
This is Header
</Text>
</View>
{/*メインコンテンツ*/}
<View style={{flex:2, flexDirection:'row'}}>
{/*スクロール領域(白)*/}
<View style={{flex:5}}>
<ListView
dataSource={this.state.dataSource}
renderRow={
rowData =>
(<Text style={{marginLeft:20}}>
{rowData.message}
</Text>)
}
/>
</View>
{/*サイドエリア(紫)*/}
<View style={[{flex:1},side]}>
<Text style={textStyle}>
This is sidebar
</Text>
</View>
</View>
{/*フッター(青緑)*/}
<View style={[{flex:0.5},footer]}>
<Text style={textStyle}>This is Footer</Text>
</View>
</View>
flex 관계의 속성은 외출하고 쓰고 있습니다.
이 경우에는
헤더: 메인 컨텐츠: 바닥글의 flex 속성 값은 0.3:2:0.5이므로 이 비율은 세로 길이의 비율입니다.
이어서, 메인 컨텐츠에서는 flexDirection:'row'가 지정되어 있기 (위해)때문에, 메인 컨텐츠내의 flex 프로퍼티의 비율은 횡 방향의 비율이 됩니다. 따라서 메인 콘텐츠는 가로로
스크롤 영역 : 사이드 바 = 5 : 1입니다.
이런 식으로 flex 속성을 사용하여 비율로 배치할 수 있습니다.
고정 배치에 대해
React Native에서 position 속성의 속성 값은 'absolute'와 'relative'만 처리할 수 있으며 'fixed'를 처리할 수 없습니다.
그러나 얼마나 화면에 대략적인 요소를 표시시켜도 스크롤할 수 없는 사양이므로 고정 요소의 표시는 간단하게 실시할 수 있습니다.
스크롤을 하기 위해서는 ScrollView 컴퍼넌트 또는 ListView 컴퍼넌트를 사용합니다.
<View style={{flex:1}}>
<View style={{
width:100,
height:100,
margin:20,
top:10,
backgroundColor:'blue',
position:'absolute'
}} />
<ScrollView>
{this._renderBox()}
</ScrollView>
<View style={{
width:100,
height:100,
margin:20,
backgroundColor:'red',
position:'absolute',
top:300
}} />
</View>
이 이미지에서는 검은 사각형이 있는 레이어가 ScrollView를 구현한 영역. 빨간색 사각형과 파란색 사각형이 스크롤을 구현하지 않는 구성 요소입니다.
빨간색과 파란색 사각형처럼 스크롤을 구현하지 않고 스크롤 가능 영역에 배치하여 고정 요소를 구현할 수 있습니다.
이상입니다.
실수 등 있으면 지적하실 수 있으면 다행입니다.
Reference
이 문제에 관하여(React Native flex 속성, 단조 배치, 고정 요소 배치 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/YutamaKotaro/items/b6e37c0314a258debaf3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<View style={{flex:1}}>
{/*ヘッダー(赤)*/}
<View style={[{flex:0.3},header]}>
<Text style={textStyle}>
This is Header
</Text>
</View>
{/*メインコンテンツ*/}
<View style={{flex:2, flexDirection:'row'}}>
{/*スクロール領域(白)*/}
<View style={{flex:5}}>
<ListView
dataSource={this.state.dataSource}
renderRow={
rowData =>
(<Text style={{marginLeft:20}}>
{rowData.message}
</Text>)
}
/>
</View>
{/*サイドエリア(紫)*/}
<View style={[{flex:1},side]}>
<Text style={textStyle}>
This is sidebar
</Text>
</View>
</View>
{/*フッター(青緑)*/}
<View style={[{flex:0.5},footer]}>
<Text style={textStyle}>This is Footer</Text>
</View>
</View>
React Native에서 position 속성의 속성 값은 'absolute'와 'relative'만 처리할 수 있으며 'fixed'를 처리할 수 없습니다.
그러나 얼마나 화면에 대략적인 요소를 표시시켜도 스크롤할 수 없는 사양이므로 고정 요소의 표시는 간단하게 실시할 수 있습니다.
스크롤을 하기 위해서는 ScrollView 컴퍼넌트 또는 ListView 컴퍼넌트를 사용합니다.
<View style={{flex:1}}>
<View style={{
width:100,
height:100,
margin:20,
top:10,
backgroundColor:'blue',
position:'absolute'
}} />
<ScrollView>
{this._renderBox()}
</ScrollView>
<View style={{
width:100,
height:100,
margin:20,
backgroundColor:'red',
position:'absolute',
top:300
}} />
</View>
이 이미지에서는 검은 사각형이 있는 레이어가 ScrollView를 구현한 영역. 빨간색 사각형과 파란색 사각형이 스크롤을 구현하지 않는 구성 요소입니다.
빨간색과 파란색 사각형처럼 스크롤을 구현하지 않고 스크롤 가능 영역에 배치하여 고정 요소를 구현할 수 있습니다.
이상입니다.
실수 등 있으면 지적하실 수 있으면 다행입니다.
Reference
이 문제에 관하여(React Native flex 속성, 단조 배치, 고정 요소 배치 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YutamaKotaro/items/b6e37c0314a258debaf3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)