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
相关产品推荐
相关产品推荐

