Der folgende Code befindet sich in diesem Live-Beispiel
Ich habe das folgende native Element reagieren:
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.descriptionContainerVer}>
<View style={styles.descriptionContainerHor}>
<Text style={styles.descriptionText} numberOfLines={5} >
Here is a really long text that you can do nothing about, its gonna be long wether you like it or not, so be prepared for it to go off screen. Right? Right..!
</Text>
</View>
</View>
<View style={styles.descriptionContainerVer2}>
<View style={styles.descriptionContainerHor}>
<Text style={styles.descriptionText} numberOfLines={5} >Some other long text which you can still do nothing about.. Off the screen we go then.</Text>
</View>
</View>
</View>);
}
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
mit folgenden Stilen:
var styles = StyleSheet.create({
container:{
flex:1,
flexDirection:'column',
justifyContent: 'flex-start',
backgroundColor: 'grey'
},
descriptionContainerVer:{
flex:0.5, //height (according to its parent)
flexDirection: 'column', //its children will be in a row
alignItems: 'center',
backgroundColor: 'blue',
// alignSelf: 'center',
},
descriptionContainerVer2:{
flex:0.5, //height (according to its parent)
flexDirection: 'column', //its children will be in a row
alignItems: 'center',
backgroundColor: 'orange',
// alignSelf: 'center',
},
descriptionContainerHor:{
//width: 200, //I DON\'T want this line here, because I need to support many screen sizes
flex: 0.3, //width (according to its parent)
flexDirection: 'column', //its children will be in a column
alignItems: 'center', //align items according to this parent (like setting self align on each item)
justifyContent: 'center',
flexWrap: 'wrap'
},
descriptionText: {
backgroundColor: 'green',//Colors.transparentColor,
fontSize: 16,
color: 'white',
textAlign: 'center',
flexWrap: 'wrap'
}
});
Dies führt zu folgendem Bildschirm:
Wie kann ich verhindern, dass der Text vom Bildschirm verschwindet, und ihn in der Mitte des Bildschirms mit einer Breite von dh 80% des übergeordneten Bildschirms beschränken?
Ich denke nicht, dass ich es verwenden sollte, width
weil ich dies auf VIELEN verschiedenen mobilen Bildschirmen ausführen werde und ich möchte, dass es dynamisch ist, also denke ich, dass ich mich voll und ganz darauf verlassen sollte flexbox
.
(Das war der ursprüngliche Grund, warum ich flex: 0.8
innerhalb der hatte descriptionContainerHor
.
Was ich erreichen möchte, ist ungefähr so:
Danke dir!