You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native实现Flexbox子元素文本不换行并显示省略号

React Native 实现单行文本溢出显示省略号

在以下flex布局场景中,需要让文本保持单行不换行,超出容器宽度的部分末尾显示省略号(示例效果:Pangaré Figueiredo SOME LOOOOOO...):

原代码(未达预期)

const LastHighline = (props: Props) => {
  return (
    <TouchableOpacity className="my-3 flex-row items-center gap-x-3">
      <View className="flex-initial">
        <HistorySvg />
      </View>

      <Text className="flex-1 overflow-hidden whitespace-nowrap overflow-ellipsis">{props.name} SOME LOOOOOOOOOOOOOONG TEXT</Text>

      <View className="flex-shrink-0 flex-row items-center">
        <HeightSvg />
        <Text>{props.height}m</Text>
      </View>
      <View className="flex-shrink-0 flex-row items-center gap-x-2">
        <WidthSvg />
        <Text>{props.length}m</Text>
      </View>
    </TouchableOpacity>
  );
};

原代码尝试通过CSS类overflow-hidden、whitespace-nowrap、overflow-ellipsis实现文本截断,但未达到预期效果。

解决方案

使用React Native Text组件原生的numberOfLines={1}属性实现单行截断省略,同时保留flex-1确保文本容器能自适应布局中的剩余空间:

修改后的代码

<Text className="flex-1" numberOfLines={1}>{props.name} SOME LOOOOOOOOOOOOOONG TEXT</Text>

内容的提问来源于stack exchange,提问作者Juan Andrade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:35:38