React Native - есть ли способ полностью скрыть клавиатуру? - PullRequest
2 голосов
/ 26 мая 2020

Я разрабатываю приложение для сканирующего устройства, которое вообще не использует виртуальную клавиатуру. Итак, в настоящее время я показываю клавиатуру только тогда, когда пользователь хочет ее открыть (нажав значок клавиатуры)

Virtual Keyboard opened

И снова нажмите вкладку, чтобы включить виртуальную клавиатура выключена.

Virtual Keyboard closed.

Однако, когда я набираю ввод с помощью аппаратной клавиатуры (с P C / сканирующего устройства) или касаюсь ввода, виртуальная клавиатура все еще отображается, и это невозможно предотвратить. Я могу поймать событие и закрыть виртуальную клавиатуру, набрав:

onKeyPress={() => {
  Keyboard.dismiss();
}}

Но это все равно создает раздражающую анимацию открытия-закрытия виртуальной клавиатуры. Есть ли способ остановить эту анимацию или полностью скрыть виртуальную клавиатуру?

Ответы [ 3 ]

1 голос
/ 31 августа 2020

используйте свойства textInput 'showSoftInputOnFocus', например:

<TextInput showSoftInputOnFocus={false} />

документация здесь https://github.com/facebook/react-native/commit/d88e4701fc46b028861ddcfa3e6ffb141b3ede3d

1 голос
/ 26 мая 2020

Это известное ограничение React Native. Вы можете попробовать отключить события указателя следующим образом, но я не уверен, что это помешает физической клавиатуре создавать события, и вы потеряете прокрутку текста:

    <View pointerEvents="none">
      <Input
        value={String(value)}
        placeholder={placeholder}
      />
    </View>
0 голосов
/ 26 мая 2020

Выбор ввода текста (фокус) запускает клавиатуру. Не используйте ввод, если не хотите, чтобы клавиатура открывалась.

Вероятно, это «изъян» в вашем дизайне. Вы показываете контент в значении TextInput. Почему бы просто не использовать другой компонент для отображения контента и просто использовать ввод текста для ввода пользователем.

Или вы могли бы подождать, пока эта проблема будет обработана.

...