Question: I have a login screen created using react-native.

How can I shift my screen up when the user is typing in the textInput?

Do I listen to the onFocus() event and use css styling to change the style of the view?

Answer: 
You can use [ScrollView](https://facebook.github.io/react-native/docs/scrollview.html) to control screen up and down movements. As long as user hasn't focused any `TextInput`, you can [disable scroll](https://facebook.github.io/react-native/docs/scrollview.html#scrollenabled). On focus, just shift up the scrollview using [Content Offset](https://facebook.github.io/react-native/docs/scrollview.html#contentoffset) prop.

```html
<TextInput
    onFocus={this.textInputFocused.bind(this)}
  />

textInputFocused() {
//do your stuff here. scroll screen up
}

```

Hope it helps!
And another solution, working with RN 0.2, this time instead of squashing the content it scrolls.

```
 inputFocused: function(ref) {
   this._scroll(ref, 75);
 },

 inputBlurred: function(ref) {
   this._scroll(ref, 0);
 },

 _scroll: function(ref, offset) {
   setTimeout(() => {
     var scrollResponder = this.refs.myScrollView.getScrollResponder();
     scrollResponder.scrollResponderScrollNativeHandleToKeyboard(
                React.findNodeHandle(this.refs[ref]),
                offset,
                true
            );
     });
  },

```

...

```
render: function() {
  return <View style={{flex: 1}}> 
    <ScrollView ref="myScrollView" keyboardDismissMode='interactive' contentContainerStyle={{flex: 1}}>
      <TextInput
        ref="myInput"
        onFocus={this.inputFocused.bind(this, 'myInput')}
        onBlur={this.inputBlurred.bind(this, 'myInput')} />
    </ScrollView>
  </View>
}

```