Я пытаюсь поместить свой текст в доступную область, и мои ограничения выглядят примерно так:
- Текст не должен переполняться,
- Текст должен масштабироваться во всех доступных представлениях,
- Слова не должны разбиваться на символы и могут переходить на следующую строку предложения,
- Когда я использую flex внутри родительского представления, текст не должен расширять представление больше, чем ширина экрана по горизонтали.
Вот мой фрагмент кода:
import React from "react";
import { StyleSheet, Text, View } from "react-native";
import { Font } from "expo";
import Lorem from "./src/helpers/lorem-ipsum-gen";
export default class App extends React.Component {
constructor() {
super()
this.state = {
fontLoaded: false,
};
}
//theboldfont.ttf
async componentWillMount() {
await Font.loadAsync({
"akzidenz-grotesk-bq-bold": require("./assets/fonts/AkzidenzGrotesk_BQ_Bold.otf"),
});
this.setState({ fontLoaded: true });
}
render() {
let loremText = new Lorem().generate(20)
return (
<View style={styles.container}>
<View>
<View style={{ flex: 0.37 }} > </View>
<View style={{ flex: 0.25, backgroundColor: "red" }} >
<View >
{
this.state.fontLoaded ? (<Text
style={{ fontFamily: "akzidenz-grotesk-bq-bold", fontSize: 50 }}
adjustsFontSizeToFit={true}
>
{loremText}
</Text>) : null
}
</View>
</View>
<View style={{ flex: 0.38 }} >
<Text>
{loremText}
</Text>
</View>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
});
И результат этого:
Что я пытался достичь своей цели:
- Я думал, что это связано с пользовательским шрифтом и изменен на шрифт по умолчанию (не работает)
- В некоторых проблемах с github люди писали AdjustsFontSizeToFit={true} внутри свойства стиля текста (не работает)
- Я пробовал allowFontScaling (не работает)
- Убран размер шрифта (не работает)
- Удалены flex и установлены статические ширина и высота для просмотра (не работает)
- Комбинации всех вышеперечисленных шагов (не работает)