如何为Android端editable={false}的文本组件启用滚动功能
Android端不可编辑多行文本滚动实现方案(React Native 场景)
该交互差异是React Native跨端默认实现的区别:iOS端TextInput设置multiline={true}后,不可编辑状态默认自带滚动能力,Android端默认关闭了该状态下的滚动响应,可通过以下两种方案实现需求:
方案1:嵌套ScrollView(全版本兼容)
将多行文本组件直接包裹在ScrollView内即可实现滚动效果,无React Native版本要求,适配所有Android系统版本,示例代码如下:<ScrollView> <TextInput multiline={true} editable={false} value="你需要展示的长文本内容" // 其他自定义样式、属性配置 /> </ScrollView>若为纯静态文本展示无需使用TextInput的特性,直接替换内部组件为
Text即可,属性配置完全一致。方案2:使用TextInput原生属性(React Native 0.66及以上版本支持)
无需嵌套外层组件,直接给TextInput添加scrollEnabled={true}属性即可实现滚动,代码更简洁:<TextInput multiline={true} editable={false} scrollEnabled={true} value="你需要展示的长文本内容" // 其他自定义样式、属性配置 />注意该属性仅在0.66及更高版本的React Native中对Android端生效,低版本使用不会触发报错但无滚动效果。
内容的提问来源于stack exchange,提问作者Mykola Korostelov
相关产品推荐
相关产品推荐

