当前位置: 首页 > 知识库问答 >
问题:

平面列表中的文本移出屏幕时自然反应

胡意致
2023-03-14

我基本上尝试了这个问题的每个答案,但似乎没有任何效果:React原生文本离开我的屏幕,拒绝换行。怎么办?

我面临着同样的问题,我的文本离开屏幕,似乎以大约130%左右的宽度运行。

这是我呈现列表的屏幕:

<View style={styles.container}>
      <FlatList 
        data={messagePreviewData}
        renderItem={({ item }) => 
          <ChatPreview 
            readMessage={item.readMessage} 
            imgUri={item.imgUri} 
            username={item.username} 
            time={item.time} 
            message={item.message} 
          />
        }
        keyExtractor={(item, index) => item.username + index}
      />
    </View>

const styles = StyleSheet.create({
  container: {
    backgroundColor: colors.neutralOne,
    flex: 1,
  }
});

这是聊天预览组件,其中消息文本会离开屏幕:

const ChatPreview = (props: ChatPreviewProps) => {
    const { readMessage, imgUri, username, time, message } = props;
    return (
        <View style={styles.container}>
            <View style={styles.leftContainer}>
                <View style={styles.badgeAvatarContainer}>
                    <Avatar
                        rounded
                        source={{ uri: imgUri }}               
                        size={scaledSize(50)}
                    />
                </View>
                <View style={styles.usernameMessageContainer}>
                    <Text style={styles.username}>{username}</Text>
                    <Text style={styles.messagePreview} numberOfLines={2} ellipsizeMode='tail'>
                         {message} // this is what's going off screen
                    </Text>
                </View>
            </View>
            <Text style={styles.time}>{time}</Text>
        </View>
    );
}

const styles = StyleSheet.create({
    container: {
        flexDirection: 'row',
        justifyContent: 'space-between',
        padding: 10,
    },
    leftContainer: {
        flexDirection: 'row'
    },
    badgeAvatarContainer: {
        flexDirection: 'row',
        alignItems: 'center',
        marginRight: 10
    },
    usernameMessageContainer: {
      // I have tried putting many things here and nothing seems to work
    },
    username: {
        color: colors.neutralEight,
        fontFamily: fonts.bodyTwoBold.fontFamily,
        fontSize: fonts.bodyTwoBold.fontSize,
        lineHeight: fonts.bodyTwoBold.lineHeight,
    },
    messagePreview: {
        color: colors.neutralFour,
        fontFamily: fonts.captionOne.fontFamily,
        fontSize: fonts.captionOne.fontSize,
        lineHeight: fonts.captionOne.lineHeight,
    },
    time: {
        color: colors.neutralFour,
        fontFamily: fonts.captionTwo.fontFamily,
        fontSize: fonts.captionTwo.fontSize,
        lineHeight: fonts.captionTwo.lineHeight
    }
});

共有2个答案

凌永逸
2023-03-14

巧合的是,我昨天也在做类似的事情。所以当你使用弹性方向行时,文本(默认为100%,它试图获得给定的所有宽度)会离开屏幕,因为现在100%就是你所说的130%。现在要限制它,我们只需要限制它的宽度。所以在文本上设置宽度,也许只有60%或70%,它就可以正常工作了。

廉学潞
2023-03-14

从父级到子级设置flex: 1可能是值得的,因为内容会离开屏幕。我遇到过忘记这样做的问题,而且搞砸了。

基本上,你可以添加flex: 1到ChatPreview中的每种风格来尝试一下,它看起来可能不会非常好,但你应该看看问题是否得到解决,我相信并从那里进行调整。

 类似资料:
  • 我试图在中显示Firebase数据。我创造了我的适配器和一切...当我运行该应用程序时,它可以正常工作,直到我将数据添加到Firebase,从而将部分推离屏幕。这会导致应用程序崩溃。 以下是MainActivity的xml: 下面是我为适配器设计的Cardview: 以下是MainActivity中重要的代码: 这是我的回收器适配器: 崩溃日志

  • 但当我使用console.log显示数据时,它会正确地从'React'导入React,{useState,useffect,Component};从“react native”导入{样式表、视图、文本、TextInput、TouchableOpacity、按钮、平面列表};从“react native paper”导入{DataTable};从“../config/fire”导入{fire};从“

  • 当我在模拟器的 EditText 中输入文本时,屏幕不会向上移动,因此我看不到我正在输入的内容。 我想附加屏幕截图,但我还没有所需的声誉。 这只是以下代码的问题。 同时,它在同一应用程序的另一个屏幕上运行良好。 工作代码是- 我正在努力找出它为什么不起作用。请帮帮忙!

  • 我试图移动这个图像: 在我的PyGame屏幕上,从右到左再向后,但是随着图像的移动,每隔一秒左右我就会有一点屏幕撕裂,就像这样: 我使用的代码是类似于此的循环: 到目前为止,我已经尝试了以下方法来解决这个问题: 在创建屏幕时使用,,标志,这没有效果,我也调整了更新为(因为使用?)时建议使用此选项) 在GPU和CPU之间拆分内存(我在raspberry pi 2上运行此功能)我尝试过为这两个处理器提

  • 我尝试过在键盘出现时向上移动屏幕。我成功地做到了,但我需要知道如何仅在单击底部时滚动视图,而不是顶部,因为键盘只是触摸下面的。 应用程序是这样的: 我们的观点

  • 背景 我在屏幕上放置了一个图像,用于在屏幕加载其他内容时显示。 我想使图像居中,这样它在所有设备上都是居中的。 问题 目前,图像显示在顶部中心。我希望它也垂直对齐。还要确保它在所有设备上看起来始终相同。 问题 确保图像始终居中并且所有设备的尺寸都正确的解决方案是什么? 例子, 我当前的代码, 在Photoshop中 图像为 300 分辨率 高度为 776 px 宽度为 600 px 我希望图像在所