2017-03-15 15 views
1

オーバーライドできませんI次のTextInputを持っている:私は達成しようとしています何が反応し、ネイティブのTextInputコントロールのデフォルトのパディング

_renderTextInput() { 
    return (
     <TextInput 
     onChangeText={TextInput => this.setState({TextInput})} 
     style={{flex: 1, backgroundColor: "maroon", paddingVertical: 0}} 
     autoFocus={true} 
     multiline={true} 
     underlineColorAndroid="transparent" 
     returnKeyType="go" 
     /> 
    ) 
    } 

    render() { 
    return(
     <View style={{flex: 1, backgroundColor: "#E0E0E0", paddingVertical: 0}}> 
     {this._renderTextInput()} 
     </View> 
    ) 
    } 

は彼のポストを入力するためのユーザのためのフルスクリーン気晴らしフリーゾーンです。

私はそれがパディングの問題だと確信していますが、私が試してみても、それを上書きすることはできません。あなたもそう画面が分割取得されたフレックス他のコンポーネントを使用しているので、

enter image description here

+0

私はあなたのコードを試してみて、それは私のために正しく動作します。周囲のコードをもっと貼り付けることができますか?親ビューにスタイルプロパティがあり、それが原因である可能性があります –

+0

パディングの代わりにマージンを試しましたか?フレックスコンテナがこの動作を引き起こしています。また、あなたが達成しようとしていることについてもう少し情報が必要だと思います。テキストフィールドをどのように表示したいですか? – wmcbain

+0

@coderhacker私の質問が更新されました。 – Raymond

答えて

2

はグラム-O-O-G-L-I-N-G 無限の長い一日を過ごした後、私は不要なパディングを引き起こしているものを見つけました。デフォルトでは、TextInputはTextを中心にしており、すべてが真ん中にあるのです。それを上書きするには、TextInputのスタイルに

textAlignVertical: 'top'を追加するだけです。 :)

これを解決するのに役立つテキストのスタイルを変更することに関する@ matt-aftのコメント。

0

Flexは文句を言わないここで働い:私はpadding:0paddingTop:0paddingVertical: 0何も動いていないようにみえ...

プレビューしようとしました。デバイスの高さと幅を使用して動作する必要があります。また、テスト入力付きのモーダルを使用することもできます。

const {height, width} = Dimensions.get('window'); 

style={{ height, width, backgroundColor: "maroon", paddingVertical: 0}} 
+0

動作しませんでした。私はあなたの例を試して、すべてのビューからflexを削除しました – Raymond

+0

TextInputの高さが増えると、パディングが始まります。私は少しの研究を行い、システムがデフォルトで計算されたパディングを追加することを発見しました。 – Raymond

+0

どのようなパディングを参照していますか?一番上のステータスバー?ナビゲーションバー? –

関連する問題