diff --git a/Libraries/Components/RefreshControl/RefreshControl.js b/Libraries/Components/RefreshControl/RefreshControl.js index 59b127461..81cecb093 100644 --- a/Libraries/Components/RefreshControl/RefreshControl.js +++ b/Libraries/Components/RefreshControl/RefreshControl.js @@ -122,6 +122,11 @@ const RefreshControl = React.createClass({ * @platform android */ size: React.PropTypes.oneOf(RefreshLayoutConsts.SIZE.DEFAULT, RefreshLayoutConsts.SIZE.LARGE), + /** + * Progress view top offset + * @platform android + */ + progressViewOffset: React.PropTypes.number, }, _nativeRef: (null: any), diff --git a/Libraries/PullToRefresh/PullToRefreshViewAndroid.android.js b/Libraries/PullToRefresh/PullToRefreshViewAndroid.android.js index d1e2cf5d4..ea7d5e25c 100644 --- a/Libraries/PullToRefresh/PullToRefreshViewAndroid.android.js +++ b/Libraries/PullToRefresh/PullToRefreshViewAndroid.android.js @@ -48,6 +48,11 @@ var PullToRefreshViewAndroid = React.createClass({ * The background color of the refresh indicator */ progressBackgroundColor: ColorPropType, + /** + * Progress view top offset + * @platform android + */ + progressViewOffset: React.PropTypes.number, /** * Whether the view should be indicating an active refresh */ @@ -80,6 +85,7 @@ var PullToRefreshViewAndroid = React.createClass({ progressBackgroundColor={this.props.progressBackgroundColor} ref={NATIVE_REF} refreshing={this.props.refreshing} + progressViewOffset={this.props.progressViewOffset} size={this.props.size} style={this.props.style}> {onlyChild(this.props.children)} diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java index 009f5a126..5db04a1a7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java @@ -20,6 +20,7 @@ import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.common.MapBuilder; import com.facebook.react.common.SystemClock; +import com.facebook.react.uimanager.PixelUtil; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.UIManagerModule; import com.facebook.react.uimanager.ViewGroupManager; @@ -32,6 +33,8 @@ import com.facebook.react.uimanager.annotations.ReactProp; */ public class SwipeRefreshLayoutManager extends ViewGroupManager { + public static final float REFRESH_TRIGGER_DISTANCE = 48; + @Override protected ReactSwipeRefreshLayout createViewInstance(ThemedReactContext reactContext) { return new ReactSwipeRefreshLayout(reactContext); @@ -82,6 +85,21 @@ public class SwipeRefreshLayoutManager extends ViewGroupManager