# RnCollapsibleText **Repository Path**: scenario-samples/rn-collapsible-text ## Basic Information - **Project Name**: RnCollapsibleText - **Description**: 在应用开发中,当首次展开的描述文本信息过多时会影响用户体验,造成视觉干扰疲劳,让用户自行选择查看更多信息。 本示例通过控制文本显示的最大长度来实现多行文本的展开和折叠。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多行文本的展开和折叠 ## 场景介绍 在应用开发中,当首次展开的描述文本信息过多时会影响用户体验,造成视觉干扰疲劳,让用户自行选择查看更多信息。 本示例通过控制文本显示的最大长度来实现多行文本的展开和折叠。 ## 效果预览 ## 实现思路 1. 设置展开状态。 ``` const [expanded, setExpanded] = useState(false); ``` 2. 切换展开状态以及返回切换状态后的文本信息。 ``` useEffect(() => { if (text && text.length > maxLength) { setExpanded(false) } else { setExpanded(true) } }, [text, maxLength]); const toggleExpansion = () => { setExpanded(!expanded); }; const getDisplayText = () => { if (expanded) { return text; } return text.substring(0, maxLength); }; ``` ## 约束与限制 - 本示例支持API Version 20 Release及以上版本。 - 本示例支持HarmonyOS 6.0.0 Release SDK及以上版本。 - 本示例需要使用DevEco Studio 6.0.0 Release及以上版本进行编译运行。 - 本示例使用0.72.96版本RNOH。 ## 工程目录 ``` RnCollapsibleText // RN工程 ├──harmony // harmony工程 │ ├──entry/src/main/cpp // native相关配置 │ │ ├──generated // codegen自动生成的桥接代码 │ │ ├──CMakeLists.txt │ │ └──PackageProvider.cpp │ ├──entry/src/main/ets │ │ ├──entryability │ │ │ └──EntryAbility.ets │ │ ├──pages │ │ │ └──Index.ets // harmony侧入口 │ │ └──RNPackagesFactory.ets │ └──entry/src/main/resources/rawfile // bundle、静态资源存放目录 ├──App.tsx // 多行文本折叠展开 ├──index.js // 入口文件 └──metro.config.js // 打包配置 ``` ## 参考文档 [RNOH使用文档](https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)