mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-23 11:57:46 +08:00
ScrollView snapToStart/snapToEnd
Summary: Added `snapToStart` and `snapToEnd` props to ScrollView which work together with `snapToOffsets` and determine whether the beginning and end of the list automatically count as snap offsets or not. If not, the list is allowed to free-scroll between its start/end and the first/last snap offset. Reviewed By: sahrens Differential Revision: D9442386 fbshipit-source-id: 47a5fdb20f884542434b01b1f0a486ed2b478c6e
This commit is contained in:
committed by
Facebook Github Bot
parent
fd744dd56c
commit
5f48d28119
@@ -474,6 +474,22 @@ export type Props = $ReadOnly<{|
|
||||
* Overrides less configurable `pagingEnabled` and `snapToInterval` props.
|
||||
*/
|
||||
snapToOffsets?: ?$ReadOnlyArray<number>,
|
||||
/**
|
||||
* Use in conjuction with `snapToOffsets`. By default, the beginning
|
||||
* of the list counts as a snap offset. Set `snapToStart` to false to disable
|
||||
* this behavior and allow the list to scroll freely between its start and
|
||||
* the first `snapToOffsets` offset.
|
||||
* The default value is true.
|
||||
*/
|
||||
snapToStart?: ?boolean,
|
||||
/**
|
||||
* Use in conjuction with `snapToOffsets`. By default, the end
|
||||
* of the list counts as a snap offset. Set `snapToEnd` to false to disable
|
||||
* this behavior and allow the list to scroll freely between its end and
|
||||
* the last `snapToOffsets` offset.
|
||||
* The default value is true.
|
||||
*/
|
||||
snapToEnd?: ?boolean,
|
||||
/**
|
||||
* Experimental: When true, offscreen child views (whose `overflow` value is
|
||||
* `hidden`) are removed from their native backing superview when offscreen.
|
||||
@@ -921,6 +937,10 @@ const ScrollView = createReactClass({
|
||||
? true
|
||||
: false,
|
||||
DEPRECATED_sendUpdatedChildFrames,
|
||||
// default to true
|
||||
snapToStart: this.props.snapToStart !== false,
|
||||
// default to true
|
||||
snapToEnd: this.props.snapToEnd !== false,
|
||||
// pagingEnabled is overridden by snapToInterval / snapToOffsets
|
||||
pagingEnabled: Platform.select({
|
||||
// on iOS, pagingEnabled must be set to false to have snapToInterval / snapToOffsets work
|
||||
|
||||
Reference in New Issue
Block a user