Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to scroll into View in React Native?

I'm developing an app using React Native. There, I want to scroll into a View when I press a button. I've tried something like this.

render() {
  return(
    <View ref={field => this.myView = field} >
      //something inside the view
    </View>
  )
}

then, tried

this.myView.focus()

But, it doesn't work.

I want to get the result as shown in the following GIF demo. How to do this?

enter image description here

like image 663
Sennen Randika Avatar asked Jul 12 '26 12:07

Sennen Randika


1 Answers

You should store ScrollView ref and use scrollViewRef.scrollTo()

render() {
  return(
    <ScrollView ref={ref => this.scrollViewRef = ref}>
      <View 
        // you can store layout for each of the fields
        onLayout={event => this.layout = event.nativeEvent.layout}
      > 
        // some field goes here
      </View>
    </ScrollView>
  )
}

And then when an error occurs just scroll to your field this.scrollViewRef.scrollTo({ y: this.layout.y, animated: true });.

Update: a working example can be found in this repo.

like image 124
Nazar Litvin Avatar answered Jul 14 '26 04:07

Nazar Litvin