https://github.com/hamidhadi/react-native-stretchy
đ¤¸ââī¸A ReactNative scrollable stretchy header component
https://github.com/hamidhadi/react-native-stretchy
expo header ios parallax parallax-effect parallax-scrolling react-native scroll stretchable stretchy-components stretchy-headers
Last synced: 11 months ago
JSON representation
đ¤¸ââī¸A ReactNative scrollable stretchy header component
- Host: GitHub
- URL: https://github.com/hamidhadi/react-native-stretchy
- Owner: hamidhadi
- License: mit
- Created: 2017-01-31T13:22:10.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T19:34:06.000Z (over 3 years ago)
- Last Synced: 2025-06-25T19:04:47.819Z (11 months ago)
- Topics: expo, header, ios, parallax, parallax-effect, parallax-scrolling, react-native, scroll, stretchable, stretchy-components, stretchy-headers
- Language: TypeScript
- Homepage:
- Size: 29.9 MB
- Stars: 239
- Watchers: 5
- Forks: 28
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# react-native-stretchy đ¤¸ââī¸
**A ReactNative Scrollable Stretchy Header Component.**
â
Fully optimized for lists
â
Fully TypeScript support
â
Use native animation
â
Expo Support

## đ§ Installation
```bash
npm install react-native-stretchy --save
```
## đ Basic Usage
```js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import { StretchyScrollView } from 'react-native-stretchy';
class SystretchyScrollView extends Component {
render() {
return (
console.log(position, reachedToTheBottomOfHeader)
}>
Foo
Bar
);
}
}
```
## âšī¸ Properties
These are default properties for all stretchy components
| Prop | Default | Description |
| --------------- | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| backgroundColor | `#FFF` | Background color of the inner content |
| image | `null` | The image of the stretchy header ([RN image source][2]) |
| imageHeight | `null` | Height of the stretchy header image (keep ratio of `image` if not provided) |
| imageResizeMode | `'cover'` | ResizeMode of the stretchy header image. [You can use one of these values](https://facebook.github.io/react-native/docs/image.html#resizemode) |
| imageOverlay | `null` | A RN Component for image overlay |
| foreground | `null` | A RN Component for foreground content of background |
| onScroll | `null` | A callback function with these arguments:
`position`: current position of scroll
`reachedToTheBottomOfHeader`: boolean flag to specify whether the scroll has reached to the bottom of header or not |
## đââī¸ Components
### ``
Simple ScrollView with stretchy header support.
### ``
React-Native FlatList component with stretchy header support.
### ``
React-Native SectionList component with stretchy header support.
NOTE:
1. In addition to the default stretchy props, you can use all available props for `ScrollView`, `FlatList` and `SectionList`.
2. You can find all available components usage in example project.
## đŽ Run Example Project
To see all components in action you can run the Example project by following these steps:
1. Clone the project
2. Install node modules by running `npm i` or `yarn` at the root of project
3. Run `npm run watch` or `yarn watch` to compile and watch source files
4. Run `npm run start` or `yarn start` to start the RN packager and keep it open
5. Open `example.xcworkspace` from `/example/ios` and run the project from `XCode`
NOTE: I changed the location of `iOS` and `Android` directories and even after specifying new locations on `react-native.config` we can't run the example project via RN cli. [See this issue][3]
## đ§Š Contribution
I'm still trying to improve the codebase of this package so if you have any idea in terms of the structure, features or anything else, please let me know by whether sending a PR or open an issue and start a discuession. I really appreciate that. :wink:
## đŽââī¸ License
Licensed under the [MIT License](https://github.com/hamidhadi/react-native-stretchy/blob/master/LICENSE).
[1]: https://github.com/react-native-community/react-native-linear-gradient
[2]: https://facebook.github.io/react-native/docs/images.html
[3]: https://github.com/react-native-community/cli/issues/1103