이미 여러 flexbox 튜토리얼을 읽었지만 여전히이 간단한 작업을 수행 할 수는 없습니다.
빨간색 상자를 100 % 너비로 만들려면 어떻게해야합니까?
암호:
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Natives
</Text>
<Text style={styles.line1}>
line1
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
</View>
스타일:
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
borderWidth: 1,
flexDirection: 'column',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
borderWidth: 1,
},
line1: {
backgroundColor: '#FDD7E4',
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
borderWidth: 1,
},
감사합니다!
업데이트 1 :
Nishanth Shankar의 제안, 래퍼 flex : 1에 flex : 1 추가 : flexDirection : ‘row’
산출:
암호:
<View style={styles.container}>
<View style={{flex:1}}>
<Text style={styles.welcome}>
Welcome to React Natives
</Text>
</View>
<View style={{flex:1}}>
<Text style={styles.line1}>
line1
</Text>
</View>
<View style={{flex:1}}>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
</View>
</View>
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
borderWidth: 1,
flexDirection: 'row',
flexWrap: 'wrap',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
borderWidth: 1,
},
line1: {
backgroundColor: '#FDD7E4',
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
borderWidth: 1,
},
답변
alignSelf: "stretch"
상품의 스타일 시트에 추가 하기 만하면 됩니다.
line1: {
backgroundColor: '#FDD7E4',
alignSelf: 'stretch',
textAlign: 'center',
},
답변
치수를 사용해야합니다
먼저 차원을 정의하십시오.
import { Dimensions } from "react-native";
var width = Dimensions.get('window').width; //full width
var height = Dimensions.get('window').height; //full height
그런 다음 line1
아래와 같이 스타일을 변경하십시오 .
line1: {
backgroundColor: '#FDD7E4',
width: width,
},
답변
편집 :
중심 텍스트 만 구부리려면 다른 접근법을 취할 수 있습니다- 다른 뷰를 구부리지 마십시오.
- flexDirection을 ‘열’로 유지하십시오
- 을 제거
alignItems : 'center'
컨테이너에서 - 조정
alignSelf:'center'
하고 싶지 않은 텍스트 뷰에 추가
Text 구성 요소를 View 구성 요소로 감싸고 View에 flex를 1로 지정할 수 있습니다.
플렉스는 다음을 제공합니다.
flexDirection:'row'
in styles.container 인 경우 너비 100 %
flexDirection:'column'
in styles.container 인 경우 높이 100 %
답변
여기 있습니다 :
아래에 따라 line1 스타일을 변경하십시오.
line1: {
backgroundColor: '#FDD7E4',
width:'100%',
alignSelf:'center'
}
답변
javascript를 사용하여 너비와 높이를 가져 와서 View 스타일로 추가하십시오. 전체 너비와 높이를 얻으려면 https://facebook.github.io/react-native/docs/dimensions.html을 사용 Dimensions.get('window').width
하십시오.
getSize() {
return {
width: Dimensions.get('window').width,
height: Dimensions.get('window').height
}
}
그리고,
<View style={[styles.overlay, this.getSize()]}>
답변
먼저 차원 구성 요소를 추가하십시오.
import { AppRegistry, Text, View,Dimensions } from 'react-native';
둘째로 변수를 정의하십시오.
var height = Dimensions.get('window').height;
var width = Dimensions.get('window').width;
셋째로 스타일 시트에 넣으십시오.
textOutputView: {
flexDirection:'row',
paddingTop:20,
borderWidth:1,
borderColor:'red',
height:height*0.25,
backgroundColor:'darkgrey',
justifyContent:'flex-end'
}
실제로이 예제에서는 반응 형보기를 만들고 화면보기의 0.25 만보기를 원했기 때문에 화면의 100 %에 다음과 같은 것을 곱하지 않으려면 0.25로 곱했습니다.
textOutputView: {
flexDirection:'row',
paddingTop:20,
borderWidth:1,
borderColor:'red',
height:height,
backgroundColor:'darkgrey',
justifyContent:'flex-end'
}
답변
참고 : 플렉스 개념에 대해 완전히 이해하십시오.
<View style={{
flex: 2,
justifyContent: 'center',
alignItems: 'center'
}}>
<View style ={{
flex: 1,
alignItems: 'center,
height: 50,
borderWidth: 1,
borderColor: '#000'
}}>
<Text>Welcome to React Nativ</Text>
</View>
<View style={{
flex: 1,
alignItems: 'center,
borderWidth: 1,
borderColor: 'red ',
height: 50
}}
>
<Text> line 1 </Text>
</View>
<View style={{
flex: 1,
alignItems: 'center,
height: 50,
borderWidth: 1,
borderColor: '#000'
}}>
<Text>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
</View>
</View>