2 つの FormInput フィールドを持つ短いフォームがあります (react-native-elements から)。テキスト入力以外の画面上の任意の場所に触れたときに、いくつかの方法を使用してフォーカスを削除する (およびキーボードを非表示にする) ことを試みました。
<View style={{flex:1}}>
<ScrollView keyboardShouldPersistTaps="handled">
<FormInput
placeholder='Phone Number'
errorStyle={{ color: 'red' }}
inputStyle={{ color: 'white', fontSize: 20, fontFamily: 'Roboto-Thin', borderBottomColor: 'transparent'}}
placeholderTextColor='white'
onChangeText = {this.onPhoneChange.bind(this)}
containerStyle = {{ borderBottomWidth: 1, borderBottomColor: '#4DB1AD', width: '90%'}}
keyboardType='numeric'
maxLength={10}
/>
</ScrollView>
</View>
私も試しました
<TouchableWithoutFeedback style={{flex: 1}} onPress={Keyboard.dismiss} accessible={false}>
<View>
<FormInput
placeholder='Phone Number'
errorStyle={{ color: 'red' }}
inputStyle={{ color: 'white', fontSize: 20, fontFamily: 'Roboto-Thin', borderBottomColor: 'transparent'}}
placeholderTextColor='white'
onChangeText = {this.onPhoneChange.bind(this)}
containerStyle = {{ borderBottomWidth: 1, borderBottomColor: '#4DB1AD', width: '90%'}}
keyboardType='numeric'
maxLength={10}
onSubmitEditing={Keyboard.dismiss}
onBlur={Keyboard.dismiss}
blurOnSubmit={true}
/>
</View>
</TouchableWithoutFeedback>
そしてこの方法
<TouchableOpacity activeOpacity={1} onPress={() => Keyboard.dismiss()}>
<FormInput
placeholder='Phone Number'
errorStyle={{ color: 'red' }}
inputStyle={{ color: 'white', fontSize: 20, fontFamily: 'Roboto-Thin', borderBottomColor: 'transparent'}}
placeholderTextColor='white'
onChangeText = {this.onPhoneChange.bind(this)}
containerStyle = {{ borderBottomWidth: 1, borderBottomColor: '#4DB1AD', width: '90%'}}
keyboardType='numeric'
maxLength={10}
/>
</TouchableOpacity>
残念ながら、これらの解決策はどれもうまくいきませんでした。