2016-11-17 29 views
1

キーボードがアクティブなときに画面を短くしようとしています。しかし、それは常に奇妙にアンドロイドでそれを調整する、それは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); 
です3210
+0

を削除しますか?キーボードは、私が思うところでは、より高さです。私は同じ問題を経験しています – Vicky

答えて

0

でandoird高さは、より多くの私は私の要件.FOR私はe.endCorordinaets.heightを削除し、ビューの自動uはアンドロイドでこのSETSTATEを知らないandorid.Soにリサイズする0

それを置く考えている計算。アンドロイドの高さを変更する必要はありません。それは自動的に動作しますが、iosで動作するように考える必要があります。高さの変更を取り除き、ビューが自動サイズ変更されているかどうかを確認してください。

uは解決策を見つけるか、この

this.setState({height: height - e.endCoordinates.height}); 
+0

こんにちは@Vicky、キーボードのイベントをすべて削除してアンドロイド:windowSoftInputMode = "adjustResize"をアンドロイドマニフェストのアンドロイド/ app/src/main/AndroidManifest.xmlに追加することで修正しましたAndroidでのみ発生します。 –

関連する問題