National Preventative Mechanism

    react-native-stretchy
    TypeScript icon, indicating that this package has built-in type declarations

    4.0.0 • Public • Published

    react-native-stretchy 🤸‍♀️

    A ReactNative Scrollable Stretchy Header Component.

    ✅ Fully optimized for lists
    ✅ Fully TypeScript support
    ✅ Use native animation
    ✅ Expo Support

    StretchyBatman

    🧐 Installation

    npm install react-native-stretchy --save

    🎓 Basic Usage

    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>
        );
      }
    }

    ℹ️ 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)
    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 scroll
    reachedToTheBottomOfHeader: boolean flag to specify whether the scroll has reached to the bottom of header or not

    💁‍♂️ Components

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

    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

    🧩 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. 😉

    👮‍♂️ License

    Licensed under the MIT License.

    Install

    npm i react-native-stretchy

    DownloadsWeekly Downloads

    117

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    51 kB

    Total Files

    58

    Last publish

    Collaborators

    • hamidhadi