# 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>                                                                                                                                                                                                                                                    |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ult.dev/components/scroll-view.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
