Так что это работает для меня, вы уверены, что это не будет работать для вас в динамическом c росте?
Редактировать: Я мог бы сейчас найти то, о чем вы говорили. Я проверяю, могу ли я обновить закуску для работы с динамическими представлениями c.
Edit2: Хорошо, заставил это работать. Вам просто нужно сделать первый текст не абсолютным.
https://snack.expo.io/Bk8ifP! 4I
Edit3: Как упоминалось Vencovsky, он может сломаться, если вам понадобится использовать flex вокруг него. Вы можете взломать его с помощью onLayout, как в этой закуске: https://snack.expo.io/HJ! PRUKNL
в основном вы сохраняете высоту текста, а затем используете ее для высоты и полей в других представлениях. Хак, но я использовал его в других настройках и работает нормально.
export default class App extends React.Component {
render() {
const myText = 'Hello World. This is my very long text, that can be a few lines height'
return (
<View style={styles.container}>
<View>
<Text style={[styles.paragraph]}>{myText}</Text>
<Text style={[styles.paragraph, styles.abs, {textShadowOffset: {width: -2, height: -2}}]}>{myText}</Text>
<Text style={[styles.paragraph, styles.abs, {textShadowOffset: {width: -2, height: 2}}]}>{myText}</Text>
<Text style={[styles.paragraph, styles.abs, {textShadowOffset: {width: 2, height: -2}}]}>{myText}</Text>
</View>
<Text> 'Here another text' </Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
justifyContent: 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: '#ecf0f1',
padding: 8
},
paragraph: { fontSize: 50, color: '#FFF', textShadowColor: 'black', textShadowRadius: 1, textShadowOffset: {
width: 2,
height: 2
}},
abs: {
position: 'absolute',
top: 0, left: 0, right: 0, bottom: 0
}
});