代码之家  ›  专栏  ›  技术社区  ›  MEric

React本机iOS文本有时不换行

  •  7
  • MEric  · 技术社区  · 6 年前

    <ScrollView
            style={styles.container}
            contentContainerStyle={styles.content}
    >
        <Text style={styles.Text} >
              Blah blah blah blah ... Long long long long text
        </Text>
        <Text style={styles.Text} >
              Blah blah blah blah ... Long long long long text
        </Text>
        <Text style={styles.Text} >
              Blah blah blah blah ... Long long long long text
        </Text>
        {/* A bunch more Text components styled similarly as above */}
    </ScrollView>
    

    我的风格定义如下:

    const styles = StyleSheet.create({
                container: {
                    backgroundColor: '#F4F4F4',
                },
                content: {
                    paddingRight: 5
                },
                text: {
                    marginVertical: 8,
                    paddingRight: 10,
                    marginLeft: 16,
                    fontSize: 18,
                    lineHeight: 42,
                }
        }
    

    通常,文本会在文本组件的末尾正确环绕。但是,有时结束文本会从屏幕的一侧消失:

    enter image description here

    当我切换到横向模式时,我通常可以看到截短的文本,但我不明白为什么会发生这种情况。我试过很多可能的方法 flex flexGrow , flexShrink , paddingRight , marginRight ,设置文本组件和/或contentContainerStyle的宽度,但似乎没有任何效果。

    我还参考了以下所有线程以获得可能的修复:

    所有的修复方法似乎都不起作用。在这一点上,我甚至不确定还能尝试什么/如何跟踪可能的错误源。任何指点都将不胜感激!

    [2] 以下内容: https://github.com/facebook/react-native/issues/17960 https://github.com/facebook/react-native/issues/15114 [4] 以下内容: https://github.com/facebook/react-native/issues/7687 [5] 以下内容: https://github.com/facebook/react-native/issues/1438 [6] 以下内容: React native text going off my screen, refusing to wrap. What to do?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Evgeniy Bondarenko    6 年前

    根据需要,您可以使用:
    -number of lines:在计算文本布局(包括换行)后,用省略号截断文本,使总行数不超过此数字。

    您可以阅读更多: here

    例子:
    <ScrollView> <Text adjustsFontSizeToFit={true}> Blah blah blah blah ... Long long long long text long text long text long text long text long text long text long text </Text> <Text numberOfLines={1} > Blah blah blah blah ... Long long long long text long text long text long text long text long text long text long text long text </Text> <Text numberOfLines={1} adjustsFontSizeToFit={true}> Blah blah blah blah ... Long long long long text long text long text long text long text long text long text long text </Text> </ScrollView>