0.0.27 • Published 5 years ago

react-native-frozenlist v0.0.27

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

React Native FrozenList

A List that just be composited by more ScrollView supports freezing columns, horizontal or vertical scrolling together.

Example running in iOS (captured by GIPHY CAPTURE)

enter image description here

View Hierarchy

enter image description here

Running demo env

  • "react": "16.0.0",
  • "react-native": "0.51.0"

Why using ScrollView

The FlatList or SectionList does not support the method scrollTo, so it does not work well for two List horizotal or vertical scrolling together through pure React-Native code. But ScrollView simply renders all child components at a once, so the FrozenList does not support render items lazily and has a performance downside.

Why iOS only

Because ScrollView on Andorid supports vertical scrolling only.

Features

  • optional ListHeader
  • optional SectionHeader
  • RenderItem
  • vertical scrolling together
  • horizontal scrolling together

Installation

cd your project root direction

$ npm install react-native-frozenlist --save

Usage

code example App.js

import {FrozenList} from 'react-native-frozenlist'

 

Props

leftList

The prop leftList will rendering a frozen columns.

leftList:{
    listHeader,
    sectionHeader,
    renderItem,
    sections
}
  • listHeader

    	**Type**:	function, **Required**:	No
    
    	A element rendered at the top of all items, default is no any style `<View/>`.
  • sectionHeader

    	 **Type**:	function,  **Required**:	No
     
    	A  element rendered and sticked at the top of each section, default is no any style `<View/>`.  
    
    	The function will be passed args with the following keys:
    	 `section` - the full section object as specified in `sections`
    	 `sectionIndex` - section's index within the `sections`
  • renderItem

    	 **Type**:	function,  **Required**:	Yes
     
    	 A element rendered  for every item in every section. You can over-ride on a per-section basis.
    
    	 The function will be passed args with the following keys:
     
    	 `section` - the full section object as specified in `sections`
     
    	 `sectionIndex` - section's index within the `sections`
     
    	 `item` - the item object as specified in this section's `data` key
     
    	 `itemIndex` - item's index within this section's `data`
  • sections

    	 **Type**:	array,  **Required**:	Yes
     
    	The actual data to render.Per section contains `data` for rendering items in this section, like the following 

    sections:[{data:[]},{data:[]}]

rightList

The prop rightList will rendering other columns horizontal scrolling.

rightList:{
    listHeader,
    sectionHeader,
    renderItem,
    sections,
    contentContainerWidth
}

The props listHeader, sectionHeader, renderItem, sections akin to the corresponding props in leftList

  • contentContainerWidth

    	 **Type**: number, **Required**: Yes
     

Ensure all child views within contentContainer are wraped and visible while horizontal scrolling.

Licensed

react-native-frozenlist is MIT Licensed