Я пытаюсь укоротить экран, когда клавиатура активна. Но он всегда приспосабливает это странно к андроиду, он отлично работает в iOS. Перед клавиатурой активен:Регулировка по высоте, когда клавиатура отображается неправильно, в андроиде с поддержкой реакции
После клавиатуры активен:
Я использую RN 0,37, это также происходит, когда я начинаю с нуля:
Этот мой код:
import React from 'react';
import {
Keyboard,
Dimensions,
ScrollView,
StyleSheet,
Text,
TextInput,
AppRegistry
} from 'react-native';
var {height, width} = Dimensions.get('window');
var _keyboardWillShowSubscription;
var _keyboardWillHideSubscription;
height = height - 20;
class awesomeproject extends React.Component {
constructor(props) {
super(props);
this.state = {
height: height,
};
}
componentDidMount() {
_keyboardWillShowSubscription = Keyboard.addListener('keyboardDidShow', (e) => this._keyboardWillShow(e));
_keyboardWillHideSubscription = Keyboard.addListener('keyboardDidHide', (e) => this._keyboardWillHide(e));
}
componentWillUnmount() {
_keyboardWillShowSubscription.remove();
_keyboardWillHideSubscription.remove();
}
_keyboardWillShow(e) {
this.setState({height: height - e.endCoordinates.height});
}
_keyboardWillHide(e) {
this.setState({height: height});
}
render() {
return (
<View style={{height: this.state.height}}>
<View style={{backgroundColor: 'blue', flex: 1}} />
<View style={styles.fieldBox}>
<TextInput
style={styles.field}
placeholder={'hello'}
autoCapitalize={'none'}
placeholderTextColor={'#afbccc'}
blurOnSubmit={false}
autoCorrect={false}
ref={'textinput'}
onChangeText={(data) => this.setState({message: data})} />
</View>
</View>
);
}
}
const styles = StyleSheet.create({
field: {
color:'black',
fontWeight:'bold',
fontSize:18,
flex: 1,
marginHorizontal: 10
},
});
AppRegistry.registerComponent('awesomeproject',() => awesomeproject);
ли у найти решение? Я думаю, что клавиатура высока больше в andoird. Я столкнулся с той же проблемой – Vicky