react-native中textInput在androidTV上的焦点处理(坑篇)
Posted 志在指尖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react-native中textInput在androidTV上的焦点处理(坑篇)相关的知识,希望对你有一定的参考价值。
react-native中,开发androidTV输入框的焦点处理。
复述流程: 安卓TV上,无法通过上下左右键,以及遥控器的上下左右来获取输入框焦点。
原因: 脸书的锅,但没修,这里官方的说法,TextInput
在android TV设备上不起作用。本机ReactEditText
实现存在一个问题,使它无法获得关注。这样就无法导航到TextInput
。
解决方法:使用touchable来转发焦点。
如:
1 import { TextInput, TouchableHighlight } from ‘react-native‘ 2 3 4 // render函数中 5 // JSX语法 6 render() { 7 return ( 8 <TouchableHighlight 9 onFocus={() => { 10 this.textInputRef.focus(); 11 }}> 12 <TextInput 13 ref={(ref) => { 14 this.textInputRef = ref; 15 }}/> 16 </TouchableHighlight> 17 ) 18 }
为什么要这样做?
使用react-native开发安卓手机的人可能没有注意过这个点,毕竟可以使用点击来获取焦点,但是在一些机器上,比如键盘机,以及TV这种情况下,是无法根据点击来获取焦点的。
这个问题起源于我在github上的一个提问。主要发现很少人提及这个问题,以及搜索没这方面的说明, 也就写这个问题。
issue地址:https://github.com/reactnativecn/react-native-website/issues/225
以上是关于react-native中textInput在androidTV上的焦点处理(坑篇)的主要内容,如果未能解决你的问题,请参考以下文章
在键盘感知滚动视图中的 textInput 后按下 React-Native 按钮
react-native中textInput在androidTV上的焦点处理(坑篇)
react-native中ios的TextInput下划线颜色
在 react-native 上更改 textInput 突出显示(自动完成)的背景颜色