TouchableOpacity без привязки, в то время как TextInput имеет фокус

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

Здесь мой код:

<View style={styles.searchView}>
    <View style={styles.textInputView}>
        <View>
            <TextInput style={styles.textInput}
                       placeholder="Sök användare"
                       multiline={false}
                       autoFocus={true}
                       autoCapitalize="words"
                       underlineColorAndroid="transparent" />
        </View>
    </View>
    <TouchableOpacity>
        <View style={styles.searchButton}>
            <Image style = {styles.searchThumbnail}
                       source = {require('../images/navigatorThumbnails/search.png')}/>
        </View>
    </TouchableOpacity>
</View>

Есть ли способ сделать TouchableOpacity доступным, а TextInput имеет фокус?

Ответ 1

В Scrollviews (а также ListViews) есть свойство, называемое keyboardShouldPersistTaps.

Для версии React-Native >= 0.41

В документации написано:

Определяет, когда клавиатура должна оставаться видимой после крана.

  • 'never' (по умолчанию), выстукивая вне сфокусированного ввода текста, когда клавиатура закрывает клавиатуру. Когда это произойдет, дети не получат ответвление.

  • 'always', клавиатура не будет автоматически удаляться, и в представлении прокрутки не будут отображаться краны, но дети из вида прокрутки могут захватывать отводы.

  • 'handled', клавиатура не будет автоматически удаляться, если кран был обработан дочерними элементами (или захвачен предком).

Установите для параметра always или handled ожидаемое поведение.

Устаревшая версия для React-Native < 0,41

В документации написано:

Если false, нажатие на клавиатуре вне фокусного текста, когда клавиатура закрыта, отключается. Когда true, представление прокрутки не будет захватывать краны, и клавиатура не будет автоматически удаляться. Значение по умолчанию - false.

Установите для параметра true ожидаемое поведение. Возможно, вам придется установить эту опору в разных местах вашего дерева компонентов.