2016-06-26 19:30:58 +00:00
---
id: using-a-scrollview
title: Using a ScrollView
layout: docs
category: The Basics
permalink: docs/using-a-scrollview.html
next: using-a-listview
2016-07-13 21:45:53 +00:00
previous: handling-text-input
2016-06-26 19:30:58 +00:00
---
The [`ScrollView` ](/react-native/docs/scrollview.html ) is a generic scrolling container that can host multiple components and views. The scrollable items need not be homogenous, and you can scroll both vertically and horizontally (by setting the `horizontal` property).
This example creates a vertical `ScrollView` with both images and text mixed together.
```ReactNativeWebPlayer
import React, { Component } from 'react';
2016-09-28 22:42:30 +00:00
import { AppRegistry, ScrollView, Image, Text } from 'react-native'
2016-06-26 19:30:58 +00:00
class IScrolledDownAndWhatHappenedNextShockedMe extends Component {
render() {
return(
< ScrollView >
< Text style = {{fontSize:96}} > Scroll me plz< / Text >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Text style = {{fontSize:96}} > If you like< / Text >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Text style = {{fontSize:96}} > Scrolling down< / Text >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Text style = {{fontSize:96}} > What's the best< / Text >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Text style = {{fontSize:96}} > Framework around?< / Text >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Image source = {require('./img/favicon.png')} / >
< Text style = {{fontSize:80}} > React Native< / Text >
< / ScrollView >
);
}
}
AppRegistry.registerComponent(
'IScrolledDownAndWhatHappenedNextShockedMe',
() => IScrolledDownAndWhatHappenedNextShockedMe);
```
`ScrollView` works best to present a small amount of things of a limited size. All the elements and views of a `ScrollView` are rendered, even if they are not currently shown on the screen. If you have a long list of more items that can fit on the screen, you should use a `ListView` instead. So let's [learn about the ListView ](/react-native/docs/using-a-listview.html ) next.