文本没有换行,并且正在获取屏幕反应本机

Posted

技术标签:

【中文标题】文本没有换行,并且正在获取屏幕反应本机【英文标题】:Text is not wrapping and is getting of the screen react native 【发布时间】:2018-11-15 19:25:49 【问题描述】:

我有一个组件,它将显示一个项目列表,其中两个 Text 彼此相邻。一个用于标题,一个用于内容。这是我的渲染实现:

let items = [
    title: 'Test Test:', value: 'Long Test Long Test Long Test Long Test Long Test Long Test Long Test',
    title: 'Test:', value: 'Short Test Test Test',
];
return (<FlatList
        style=flex: 1, width: Dimensions.get('window').width
        data=items
        renderItem=(item) =>
            <View style=flexDirection: 'row', width: Dimensions.get('window').width>
                <Text style=color: colors.accentColor>item.title</Text>
                <Text>item.value</Text>
            </View>
        />);

问题是文本没有换行,当它是长文本时它会进入屏幕。我该如何解决?

【问题讨论】:

【参考方案1】:

您可以将内容包装在屏幕尺寸为width 的组件中。

使用Dimensions 包计算width

let fullWidth = Dimensions.get('window').width

然后将此宽度分配给style对象width: fullWidth

希望这能解决:)

【讨论】:

尝试将Flatlist 包裹在具有屏幕尺寸宽度的View 这也没有帮助【参考方案2】:

我复制了您的案例,并通过在您的长文本上放置 flex: 1 属性来进行正确的包装:

<View style=flexDirection: 'row', width: Dimensions.get('window').width>
    <Text style=color: "red">item.title</Text>
    <Text style=flex: 1>item.value</Text>
</View>

告诉我它是否适合你!

【讨论】:

我记得在发布问题之前我用maxWidth 而不是width 尝试过这个,但没有帮助。谢谢它的工作

以上是关于文本没有换行,并且正在获取屏幕反应本机的主要内容,如果未能解决你的问题,请参考以下文章

当字体大小在本机反应中增加时,文本不会换行

反应原生 TextInput 离开我的屏幕

如何在本机反应中更改获取响应的按钮文本?

Firestore 没有从反应本机日历中获取字符串

基本反应本机应用程序不显示任何文本,只有白色屏幕和模拟器上的应用程序名称

SWIFT iOS - 从多行 uitextview 获取带有换行符的文本,因为它们在屏幕上可见