當用戶輸入文字時,您可以使用鍵盤完成按鈕關閉鍵盤。
<TextInput placeholder={'Password'} secureTextEntry={true} style={styles.input}
onChangeText={(pin1) => this.setState({pin1: pin1})}
value={this.state.pin1}
maxLength={8}
onSubmitEditing={()=> this.dismissKeyboardAction()}/>
在某處定義此方法。
dismissKeyboardAction() {
dismissKeyboard();
}
,如果你想關閉鍵盤時,用戶點擊其他任何地方其他比鍵盤每當鍵盤是可見的,不要忘了導入
var dismissKeyboard = require('dismissKeyboard');
此外,有幾個可能的解決方法。使用keyboardWillShow和keyboardWillHide方法設置和取消設置狀態變量,如isKeyboardVisible = true。此外,基於此狀態變量,如果爲true,則使用絕對座標(從高度0到屏幕高度 - keyboardheight)在整個屏幕(透明TouchableHighlight或TouchableWithoutFeedback)上繪製覆蓋圖,並在點擊時調用相同的dismisskeyboard()方法。
喜歡的東西
componentWillMount() {
if (Platform.OS === 'ios') {
Keyboard.addListener('keyboardWillShow', this.keyboardWillShow); //not supported on Android
Keyboard.addListener('keyboardWillHide', this.keyboardWillHide); //not supported on Android
}
else {
Keyboard.addListener('keyboardDidShow', this.keyboardWillShowAndroid);
Keyboard.addListener('keyboardDidHide', this.keyboardWillHideAndroid);
}
}
keyboardWillShow (e) {
let newSize = e.endCoordinates.height
this.setState({
keyboardHeight: newSize,
isKeyboardVisible: true
})
}
keyboardWillHide (e) {
this.setState({
keyboardHeight: 0,
isKeyboardVisible: false
})
}
你可以得到屏幕高度這樣
import Dimensions from 'Dimensions';
var height = Dimensions.get('window').height;
var width = Dimensions.get('window').width;
在這裏,您可以呈現在你的UI透明的可觸摸組件只當鍵盤是可見的,並關閉鍵盤在onPress方法。
dismisskeboard nolonger的作品,它已被棄用 –
Keyboard.dismiss()可用來代替。 –
@AhmedAli另外,你能否提供表示已折舊的鏈接?這個對我有用。 –