UNPKG

react-native-mjrefresh-xys

Version:

>React-Native-MJRefresh可完成使用React Native对IOS进行自定义下拉刷新设置 > >onPulling参数为{nativeEvent:percent},结合lottie-react-native可以获得绝佳的下拉刷新效果 > >自定义详情可见Example:[HuaWeiRefreshControl.js](https://github.com/react-native-studio/react-native-MJRefresh/blob/master/Example/H

41 lines (37 loc) 1.34 kB
import React,{Component} from 'react'; import { findNodeHandle, NativeModules, Platform, FlatList, } from 'react-native'; import MJScrollView from './MJScrollView' const RCTMJScrollViewManager = NativeModules.MJScrollViewManager; var DEFAULT_PAGE_SIZE = 1; var DEFAULT_INITIAL_ROWS = 10; var DEFAULT_SCROLL_RENDER_AHEAD = 1000; var DEFAULT_END_REACHED_THRESHOLD = 1000; class MJListView extends FlatList { static defaultProps = { initialListSize: DEFAULT_INITIAL_ROWS, pageSize: DEFAULT_PAGE_SIZE, renderScrollComponent: props => <MJScrollView {...props} />, scrollRenderAheadDistance: DEFAULT_SCROLL_RENDER_AHEAD, onEndReachedThreshold: DEFAULT_END_REACHED_THRESHOLD, stickySectionHeadersEnabled: Platform.OS === 'ios', stickyHeaderIndices: [], } _measureAndUpdateScrollProps = () => { var scrollComponent = this.getScrollResponder(); if (!scrollComponent || !scrollComponent.getInnerViewNode) { return; } RCTMJScrollViewManager && RCTMJScrollViewManager.calculateChildFrames && RCTMJScrollViewManager.calculateChildFrames( findNodeHandle(scrollComponent), this._updateVisibleRows, ) } } module.exports = Platform.OS === 'ios' ? MJListView : FlatList;