Так что это работает для меня, вы уверены, что это не сработает для вас с динамической высотой?
Изменить: теперь я, возможно, нашел то, о чем вы говорили. Я проверяю, могу ли я обновить закуску для работы с динамическими представлениями.
Edit2: Хорошо, заставил работать. Вам просто нужно сделать первый текст неабсолютным.
https://snack.expo.io/Bk8ifP!4I
Edit3: Как упоминал Венковский, он может сломаться, если вам нужно использовать гибкость вокруг него. Вы можете взломать его с помощью onLayout, как в этой закуске: https://snack.expo.io/HJ!PRUKNL
в основном вы сохраняете высоту текста, а затем используете ее для высоты и поля в других представлениях. Он хакерский, но я использовал его в других настройках и отлично работает.
![введите описание изображения здесь](https://i.stack.imgur.com/1GRh7.png)
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
}
});
person
sfratini
schedule
29.02.2020