đ¤¸ââī¸A ReactNative scrollable stretchy header component
A ReactNative Scrollable Stretchy Header Component.
â
Fully optimized for lists
â
Fully TypeScript support
â
Use native animation
â
Expo Support
npm install react-native-stretchy --save
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import { StretchyScrollView } from 'react-native-stretchy';
class SystretchyScrollView extends Component {
render() {
return (
<StretchyScrollView
image={{ uri: 'https://example.com/myImageAddress' }}
onScroll={(position, reachedToTheBottomOfHeader) =>
console.log(position, reachedToTheBottomOfHeader)
}>
<Text>Foo</Text>
<Text>Bar</Text>
</StretchyScrollView>
);
}
}
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) |
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 |
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 scrollreachedToTheBottomOfHeader : boolean flag to specify whether the scroll has reached to the bottom of header or not |
<StretchyScrollView />
Simple ScrollView with stretchy header support.
<StretchyFlatList />
React-Native FlatList component with stretchy header support.
<StretchySectionList />
React-Native SectionList component with stretchy header support.
NOTE:
ScrollView
, FlatList
and SectionList
.To see all components in action you can run the Example project by following these steps:
npm i
or yarn
at the root of projectnpm run watch
or yarn watch
to compile and watch source filesnpm run start
or yarn start
to start the RN packager and keep it openexample.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
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:
Licensed under the MIT License.