【问题标题】:React Native & TextInput : How to get what the use type one by one for Android?React Native & TextInput : 如何一一获取 Android 的使用类型?
【发布时间】:2021-09-25 02:22:43
【问题描述】:

我正在尝试在react native 中制作这个OTP (6 digits) 输入框。 会发生什么 - 当用户按下任何键(backspace 键除外)时,它应该跳到下一个框,当用户按下 backspace 键时,它应该回到上一个框。

到目前为止,它在iOS 上运行良好,然后当我检查Android 时,它根本不会跳转到下一个框。我在网上查了一下,发现Android不支持onKeyPress。没有onKeyPress,我怎样才能使它适用于android?我应该使用onChange 吗?但是我怎么知道用户是否按下了backspace

             <TextInput
                editable={editable}
                value={input_1}
                style={styles.inputBox}
                keyboardType='number-pad'
                ref={box_1}
                // onChange={({ text }) => {
                //   setInput_1(text);
                // }}

                onFocus={() => {
                 
                }}
                onKeyPress={({ nativeEvent }) => {
                  if (nativeEvent.key === 'Backspace') {
                    box1.current.focus();
                  } else {
                    focus(1);
                  }
                }}
              />
        

谢谢。

【问题讨论】:

    标签: javascript android react-native textinput


    【解决方案1】:

    文档说 work 在 android 中,但来自 soft keyboard 而不是 hardware keyboard 我认为你可能会忽略硬件键盘.

    docs 这么说

    注意:在 Android 上,仅处理来自软键盘的输入,而不处理 硬件键盘输入。

    soft keyboardhardware keyboard 有什么不同?

    soft keyboard屏幕键盘或软件键盘)类似于手机或平板电脑屏幕上的键盘。
    hardware keyboard外接键盘)类似于带有USB(安卓支持)。


    如果您在模拟器中测试,请尝试通过鼠标使用模拟器键盘,而不是计算机键盘。

    如果你不能忽略硬件键盘

    我建议使用这个库react-native-confirmation-code-field试试零食here

    或者按照库的方式,它使用了一个不可见的组件,它会被拉伸到组件上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多