# Scroll

### Styles

* Flexbox Styles
* View Styles
* Transform Styles

### Props

| Name                               | Type                                                    | Description                                                                                                                                                                                                                                                                                                                                        |
| ---------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **bounces**                        | `boolean`                                               | <ul><li>Should scroll bar bounce when user hits the bounds?</li><li>iOS only</li></ul>                                                                                                                                                                                                                                                             |
| **horizontal**                     | `boolean`                                               | <ul><li>Does it support scrolling in the horizontal and/or vertical directions?</li></ul>                                                                                                                                                                                                                                                          |
| **vertical**                       | `boolean`                                               | <ul><li>Does it support scrolling in the horizontal and/or vertical directions?</li></ul>                                                                                                                                                                                                                                                          |
| **keyboardDismissMode**            | `'none' \| 'interactive' \| 'on-drag'`                  | <ul><li>When the user scrolls the view, how should the on-screen keyboard react?</li><li>Native only</li></ul>                                                                                                                                                                                                                                     |
| **keyboardShouldPersistTaps**      | `boolean \| 'always' \| 'never' \| 'handled' = 'never'` | <ul><li>Should the on-screen keyboard remain visible when the user taps the scroll view?</li><li>Native</li></ul>                                                                                                                                                                                                                                  |
| **onContentSizeChange**            | `(width: number, height: number) => void`               | <ul><li>Invoked when the contents of the scroll view change</li></ul>                                                                                                                                                                                                                                                                              |
| **onFocus**                        | `undefined`                                             | <ul><li>Focus Events</li></ul>                                                                                                                                                                                                                                                                                                                     |
| **onBlur**                         | `undefined`                                             | <ul><li>Focus Events</li></ul>                                                                                                                                                                                                                                                                                                                     |
| **onKeyPress**                     | `undefined`                                             | <ul><li>Keyboard Events</li></ul>                                                                                                                                                                                                                                                                                                                  |
| **onLayout**                       | `undefined`                                             | <ul><li>Invoked when view dimensions or position changes</li></ul>                                                                                                                                                                                                                                                                                 |
| **onScroll**                       | `undefined`                                             | <ul><li>Called when the scroll position changes</li></ul>                                                                                                                                                                                                                                                                                          |
| **onScrollBeginDrag**              | `undefined`                                             | <ul><li>Called when the user starts or stops scrolling (touch-based systems only)</li></ul>                                                                                                                                                                                                                                                        |
| **onScrollEndDrag**                | `undefined`                                             | <ul><li>Called when the user starts or stops scrolling (touch-based systems only)</li></ul>                                                                                                                                                                                                                                                        |
| **scrollXAnimatedValue**?          | `AnimatedValue`                                         | <ul><li>AnimatedValue objects hooked up to either (or both) of these properties will be automatically hooked into the onScroll handler of the scrollview and .setValue() will be called on them with the updated values</li><li>On supported platforms, it will use RN.Animated.event() to do // a native-side/-backed coupled animation</li></ul> |
| **scrollYAnimatedValue**?          | `AnimatedValue`                                         | <ul><li>AnimatedValue objects hooked up to either (or both) of these properties will be automatically hooked into the onScroll handler of the scrollview and .setValue() will be called on them with the updated values </li><li>On supported platforms, it will use RN.Animated.event() to do a native-side/-backed coupled animation</li></ul>   |
| **overScrollMode**?                | `'auto' \| 'always' \| 'never'`                         | <ul><li>Android only property to control overScroll mode</li></ul>                                                                                                                                                                                                                                                                                 |
| **pagingEnabled**                  | `boolean`                                               | <ul><li>Snap to page boundaries?</li></ul>                                                                                                                                                                                                                                                                                                         |
| **snapToInterval**                 | `number`                                                | <ul><li>Snap to page boundaries?</li></ul>                                                                                                                                                                                                                                                                                                         |
| **scrollEnabled**                  | `boolean`                                               | <ul><li>Is scrolling enabled?</li></ul>                                                                                                                                                                                                                                                                                                            |
| **scrollEventThrottle**            | `number`                                                | <ul><li>Minimum duration (in milliseconds) between scroll events</li></ul>                                                                                                                                                                                                                                                                         |
| **scrollIndicatorInsets**          | `ScrollIndicatorInsets`                                 | <ul><li>Inset (in pixels) of scroll indicator from top/bottom (vertical) or left/right (horizontal)</li></ul>                                                                                                                                                                                                                                      |
| **scrollsToTop**                   | `boolean`                                               | <ul><li>If true, this scroll bar scrolls to the top when the user taps on the status bar</li></ul>                                                                                                                                                                                                                                                 |
| **showsHorizontalScrollIndicator** | `boolean`                                               | <ul><li>Should the indicator be displayed?</li></ul>                                                                                                                                                                                                                                                                                               |
| **showsVerticalScrollIndicator**   | `boolean`                                               | <ul><li>Should the indicator be displayed?</li></ul>                                                                                                                                                                                                                                                                                               |
| **style**                          | `ViewStyleRuleSet \| ViewStyleRuleSet[]`                | <ul><li>See below for supported styles</li></ul>                                                                                                                                                                                                                                                                                                   |
| **tabNavigation**?                 | `'local' \| 'cycle' \| 'once'`                          | <ul><li>Windows-only property to control tab navigation inside the view</li></ul>                                                                                                                                                                                                                                                                  |
| **testId**                         | `string`                                                | <ul><li>ID that can be used to identify the instantiated element for testing purposes</li></ul>                                                                                                                                                                                                                                                    |
