endRefreshing animates scrollView to top inset instead of zero
Summary:To use a ScrollView and RefreshControl with a translucent navigation bar you have to set the top inset to the height of that bar, allowing the content to scroll underneath. After changes to RCTRefreshControl in **v0.22**, `endRefreshing` always animates the offset to 0, hiding content behind the navigation bar. What you'd expect on iOS is for it to return to the bottom of the bar. **Test plan** To see this in action, refer to the UIExplorerApp. In RefreshControlExample.js if you set the ScrollView's `contentInset={{top: 100}}` you'll see the refresh control UI is where you'd expect, and after refresh the list returns to the correct position. Closes https://github.com/facebook/react-native/pull/6848 Differential Revision: D3157934 Pulled By: mkonicek fb-gh-sync-id: c2186a4541fb3988677f0851eb12c259cd003750 fbshipit-source-id: c2186a4541fb3988677f0851eb12c259cd003750
This commit is contained in:
parent
39206f33e9
commit
c254d081fd
|
@ -68,7 +68,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
|
|||
// endRefreshing otherwise the next pull to refresh will not work properly.
|
||||
UIScrollView *scrollView = (UIScrollView *)self.superview;
|
||||
if (scrollView.contentOffset.y < 0) {
|
||||
CGPoint offset = {scrollView.contentOffset.x, 0};
|
||||
CGPoint offset = {scrollView.contentOffset.x, -scrollView.contentInset.top};
|
||||
[UIView animateWithDuration:0.25
|
||||
delay:0
|
||||
options:UIViewAnimationOptionBeginFromCurrentState
|
||||
|
|
Loading…
Reference in New Issue