私は私のアプリで反応-ナビゲーションを使用していますが、アプリが複数の画面でStackNavigatorで構成されて、いくつかの画面がautoFocus={true}
React-Nativeでキーボードの高さを取得するには?
問題でのTextInputを持っている:コンポーネントのレンダリングこれらの画面上の、画面の高さ
constructor(props) {
super(props);
this.state = {
height: Dimensions.get('window').height,
};
}
しかし、TextInputコントロールのautoFocus
はコンポを引き起こし、レンダリング後ほぼ瞬時に、画面上でこのスクリーンポップアップキーボードtrue
ているので:コンストラクタで設定されていますNENTは再レンダリングによるcomponentWillMountにキーボードに追加されたEventListenerにします
componentWillMount() {
this.keyboardWillShowListener = Keyboard.addListener(
'keyboardWillShow', this.keyboardWillShow.bind(this));
}
keyboardWillShow(e) {
this.setState({ height: Dimensions.get('window').height * 0.9 - e.endCoordinates.height });
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
}
これは、パフォーマンスに影響を与え、私は不要レンダリング再を避けるためにしたいと思います。
質問:
1.それが反応-ナビゲーションのScreenPropsでキーボードの動的な高さ(デバイスに依存する)を設定することは可能ですか?
2. React-Navigationのstate.paramsでも同じことができますか?
3. KeyboardAvoidingViewまたはthis moduleを適用する以外に、この問題を解決する他の方法はありますか?