Bir hatayı React Native'de bir giriş bileşeninde vurgularken bir android sorunu yaşıyor.React Yerel Android klavye vurgulayın metin sorunu
, sorun oluşur Eğer tutunmak zaman: Uygulamayı yeniden başlattığında, açmak ve giriş kutusunu ve türünü kapatıp şöyle mesajları gönderebilirsiniz ince
Fonksiyonlar metin vurgulamak için (böylece kopyalayabilirsiniz/yapıştır/kesilmiş metin):
Bunun gerçekleşmesinden sonra metin kutusunun kapatılması ve yeniden açılması aynı etkiye sahiptir (alt çubuk gezinme gösterilir). Klavyenin aktif olup olmadığına bakılmaksızın klavyenin küçültülmüş haliyle aşağıdaki metin ekrana getirildiğinden, artık klavyenin ekranın üzerine yerleştirilmiş gibi görünmektedir.
Bu yön, klavye için uygulama genelinde durumu nasıl bozuyor? Birisi, Android için en üstte görünen kopyala/yapıştır işlevselliğine nasıl baş edeceğimi veya bunlara nasıl erişeceğimi bildirebilir mi? Anlamsız olan şey, bu gerçekleştiğinde tüm uygulamanın klavye girişi için kırılmasıdır - uygulamayı yeniden başlatarak tekrar çalışmasını sağlayabilirsiniz.
ilgili kod aşağıda (sadece söylemek eksik bir şey var ise):
DeviceEventEmitter kodu: bileşeninde
componentDidMount: function(){
let context = this,
DeviceEventEmitter.addListener('keyboardWillShow', function(e: Event) {
context.setState({
height: context.listViewMaxHeight - e.endCoordinates.height + 50,
});
});
DeviceEventEmitter.addListener('keyboardWillHide', function(e: Event) {
context.setState({
height: context.listViewMaxHeight,
})
});
}
TextInput bileşeni işlemek fonksiyonu:
<View style={styles.textInputContainer}>
<TextInput
maxNumberOfLines={8}
multiline={true}
autoFocus={false}
editable={true}
numberOfLines= {5}
ref='textInput'
onChangeText={this.onChangeText}
style={[styles.textInput, {height: context.props.textInputHeight}]}
placeholder={context.props.placeholder}
placeholderTextColor="#5A5A5A"
value={context.state.text}/>
<Button
style={styles.sendButton}
onPress={this._onPress}
disabled={this.state.disabled}>
Send </Button>
</View>
Çoğu zaman klavyenin doğru şekilde davrandığını görmenin sorun olup olmadığından emin değilim, fakat klavyeWillHide ve keyboardWillShow'un Android için henüz uygulanmadığını düşünmüyorum. Ancak, keyboardDidShow ve keyboardDidHide. Bkz: https://github.com/facebook/react-native/issues/3468 – pinewood
@ pinewood Yeh klavye çalışır, vurgulanan işlevsellik en üstte göründüğü gibi klavyeyi yazıp kapatabilirsiniz, böylece klavye Sorun bu. Vurgulanan metnin kırılması, klavyenin klavye olayı yayıcı setState yüksekliğinden bağımsız olarak gösterilmemesi durumunda, içeriğin içeriğin nereye geri döndüğü görünümünün yüksekliğidir. Eğer bunun için bir bileşen adı varsa, onun özelliklerini temel alarak durumu daha iyi yönetebilirim ve eğer etkinse –
@ pinewood oh ve ben de DidShow ve DidHide'ı kullanmayı denedim, her ikisi de aynı işlevi görür. –