Как избежать двойного нажатия, когда клавиатура открыта на Native Base?

Это вопрос о структуре Native Base для приложений React Native:

Представьте себе экран подписки; 1 ввод текста и кнопка подписки;

После того, как я ввожу свой адрес электронной почты, я хочу нажать кнопку подписки, но мое первое нажатие только закрывает клавиатуру, и мне нужно нажать еще раз, чтобы нажать кнопку. Как этого можно избежать? Мое ожидаемое поведение заключается в том, что первое нажатие — это нажатие кнопки. (Насколько я вижу, это что-то вроде ‹ Content > component, но я не уверен.)

(Я проверил эту проблему в собственном приложении для кухонной раковины, и там тоже возникает такая же проблема. Просто перейдите в раздел «Формы и ввод» и посмотрите «Фиксированная метка»).


person yusuf    schedule 22.06.2017    source источник
comment
Вы можете проверить это. Проблема не такая, как у вас, но это может дать некоторое представление.   -  person milkersarac    schedule 22.06.2017
comment
А как насчет использования компонентов Input и InputGroup NativeBase вместо TextInput RN?   -  person milkersarac    schedule 22.06.2017
comment
@milkersarac спасибо за комментарии, но я использую некоторые пользовательские вводы текста, и вот почему, но ответ, который я принял, решает проблему.   -  person yusuf    schedule 23.06.2017
comment
Рада, что получилось, здорово!   -  person milkersarac    schedule 23.06.2017


Ответы (3)


Передайте это как реквизит компоненту контента.

< Content keyboardShouldPersistTaps='always'>
person Paul Nyondo    schedule 22.06.2017
comment
Великолепно, это работает (хотя я еще не изучал последствия), большое спасибо! Я очень много гуглил для этого! - person yusuf; 23.06.2017
comment
в моем случае мне нужно было добавить его в компонент flatlist - person Fadi Abo Msalam; 03.02.2019

Если вы используете < Content keyboardShouldPersistTaps='always'>, клавиатура не исчезнет после выбора кнопки или касания за пределами поля ввода. Чтобы клавиатура исчезла, если вы нажмете за пределами поля ввода, используйте

< Content keyboardShouldPersistTaps='handled'>

Однако при этом клавиатура не исчезнет, ​​если вы выберете кнопку (в отличие от пустой части экрана), даже если будет запущено событие кнопки onPress. Чтобы клавиатура исчезла после нажатия кнопки, обработчик onPress кнопки должен вызвать

Keyboard.dismiss()

Не забудьте включить оператор импорта:

import { Keyboard } from 'react-native';

Дополнительные сведения см. на странице https://facebook.github.io/react-native/docs/scrollview.html#keyboardshouldpersisttaps

person Kes115    schedule 07.09.2017

keyboardShouldPersistTaps это свойство теперь существует в ScrollView.

<ScrollView keyboardShouldPersistTaps="always">
     {..content or component}
</ScrollView>

Для более подробной информации посетите официальный документ

https://facebook.github.io/react-native/docs/scrollview#keyboardshouldpersisttaps

person Vipul    schedule 29.01.2019