React Native Flexbox에서 100 % 너비
이미 여러 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'
하고 싶지 않은 텍스트 뷰에 추가
You can wrap the Text component in a View component and give the View a flex of 1.
The flex will give :
100% width if the flexDirection:'row'
in styles.container
100% height if the flexDirection:'column'
in styles.container
Use javascript to get the width and height and add them in View's style. To get full width and height, use Dimensions.get('window').width
https://facebook.github.io/react-native/docs/dimensions.html
getSize() {
return {
width: Dimensions.get('window').width,
height: Dimensions.get('window').height
}
}
and then,
<View style={[styles.overlay, this.getSize()]}>
Here you go:
Just change the line1 style as per below:
line1: {
backgroundColor: '#FDD7E4',
width:'100%',
alignSelf:'center'
}
First add Dimension component:
import { AppRegistry, Text, View,Dimensions } from 'react-native';
Second define Variables:
var height = Dimensions.get('window').height;
var width = Dimensions.get('window').width;
Third put it in your stylesheet:
textOutputView: {
flexDirection:'row',
paddingTop:20,
borderWidth:1,
borderColor:'red',
height:height*0.25,
backgroundColor:'darkgrey',
justifyContent:'flex-end'
}
Actually in this example I wanted to make responsive view and wanted to view only 0.25 of the screen view so I multiplied it with 0.25, if you wanted 100% of the screen don't multiply it with any thing like this:
textOutputView: {
flexDirection:'row',
paddingTop:20,
borderWidth:1,
borderColor:'red',
height:height,
backgroundColor:'darkgrey',
justifyContent:'flex-end'
}
Noted: Try to fully understanding about flex concept.
<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>
단지를 제거 alignItems: 'center'
컨테이너 스타일을 추가 textAlign: "center"
받는 사람 line1
아래에 주어진 같은 스타일.
잘 작동합니다
container: {
flex: 1,
justifyContent: 'center',
backgroundColor: '#F5FCFF',
borderWidth: 1,
}
line1: {
backgroundColor: '#FDD7E4',
textAlign:'center'
},
Style ={{width : "100%"}}
이 구문을 사용해보십시오. 여기에 링크 설명을 입력하십시오
참고 URL : https://stackoverflow.com/questions/33297367/100-width-in-react-native-flexbox
'Programing' 카테고리의 다른 글
JavaScript에서 객체 {}를 키-값 쌍의 배열 []으로 변환하는 방법 (0) | 2020.05.18 |
---|---|
파이썬에서 왜 바퀴를 만들 수 없습니까? (0) | 2020.05.18 |
Ruby On Rails에서 이전 페이지로 리디렉션하는 방법은 무엇입니까? (0) | 2020.05.18 |
Excel에서 올바르게 읽을 수 있도록 PHP에서 UTF-8 CSV를 출력하려면 어떻게해야합니까? (0) | 2020.05.18 |
Windows 7 x64의 'adb 기기'를 통해 USB를 통해 Nexus 7을 볼 수 없음 (0) | 2020.05.18 |