diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java index f458c0ab06b..728def66f79 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java @@ -20,10 +20,27 @@ import com.facebook.react.uimanager.events.NativeGestureUtil; */ public class ReactSwipeRefreshLayout extends SwipeRefreshLayout { + private boolean mRefreshing = false; + public ReactSwipeRefreshLayout(ReactContext reactContext) { super(reactContext); } + @Override + public void setRefreshing(boolean refreshing) { + if (mRefreshing != refreshing) { + mRefreshing = refreshing; + // Use `post` otherwise the control won't start refreshing if refreshing is true when + // the component gets mounted. + post(new Runnable() { + @Override + public void run() { + ReactSwipeRefreshLayout.super.setRefreshing(mRefreshing); + } + }); + } + } + @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (super.onInterceptTouchEvent(ev)) { 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 5db04a1a77f..e66132ff735 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 @@ -74,15 +74,8 @@ public class SwipeRefreshLayoutManager extends ViewGroupManager