如何触摸并按住以在React Native中选择文本

Sin*_*Sin 7 android react-native

我是Android的新手,并尝试使用React Native的Text组件实现丰富的编辑器.但是,当我触摸文本并保持片刻时,文本未突出显示,并且带有选择操作的顶部栏未显示为在webview或其他应用程序中的行为.我缺少什么或者我需要自己实现这个功能?如果是这样你能指出方向吗?

Muh*_*mad 21

截至目前,它react-native也通过添加props selectable={true}. 同样在 Android 上,您可以使用selectionColor='orange'.

例子:

<Text selectable={true} selectionColor='orange'>You can select me</Text>
Run Code Online (Sandbox Code Playgroud)

  • 我还想补充一点,在 React Native 0.60.5 中,当您打开远程调试器或使用 &lt;TouchableWithoutFeedback&gt; 作为祖先组件(不是直接父组件)时,您可能会在“长按”事件中遇到不稳定的行为(有时它不会由于 setTimeout 问题而被触发),这可能会让您相信组件中的可选文本不起作用。这就是我身上发生的事情,所以我建议在调试模式下开发时,在没有远程调试器的情况下运行应用程序,以确保即使在这种情况下,可选文本也不起作用 (2认同)

Mik*_*ert 18

如果您希望使用Text组件单击并按住选择文本,则React Native for iOS中当前不存在此功能.您可能希望upvote https://productpains.com/post/react-native/select-text-in-text-elements建议Facebook添加对此的支持.

但是,我已经在Android上提交了对React 0.30的支持.但React iOS直接将字符绘制到屏幕上(并且不使用支持可选属性的本机UITextView),因此不支持它,并且可能不会持续很长时间.

RN 0.39增加了对复制整个文本字段的支持,但尚未支持选择要复制的文本字段的子集.

  • 亲爱的朋友们,请你解释一下你对这个答案不喜欢的东西吗?iOS和Android的原生"文本选择"功能在React Native <Text>组件中不起作用,即使功能性很强在底层本机组件中受支持.它需要根据工作原则做出反应.我已经戳了一下这个,但是在我的优先级列表中,我没有足够深入地挖掘必要的更改以使其跨平台工作. (2认同)
  • 当信息正确时,我也想知道为什么有人拒绝投票.目前`Text`不支持高亮和复制.它也没有用于应用焦点的本机支持.关于这一点,github上有一些未解决的问题.关于这个问题,CURRENT截至2016-08-29解决方法是使用`textInput`和`editable:false`并应用类似于任何`Text`组件的样式.更多信息请访问:[Github:React-Native](https://github.com/facebook/react-native/issues/2447) (2认同)

Lau*_*ent 5

如果文本是嵌套的,请小心,您应该将selectable属性添加到顶部`

<Text selectable>
    <Text>
        some selectable text
    </Text>
</Text>
Run Code Online (Sandbox Code Playgroud)

  • 不错的收获。谢谢。 (2认同)