[ReactNative] ScrollView docs

Summary:
In preparation for open sourcing React Native for Android, document which ScrollView props are platform-specific.
This commit is contained in:
Martin Konicek 2015-07-23 06:36:37 -07:00
parent 9d19829742
commit 19a8eff668

View File

@ -53,44 +53,54 @@ var INNERVIEW = 'InnerScrollView';
* Doesn't yet support other contained responders from blocking this scroll * Doesn't yet support other contained responders from blocking this scroll
* view from becoming the responder. * view from becoming the responder.
*/ */
var ScrollView = React.createClass({ var ScrollView = React.createClass({
propTypes: { propTypes: {
automaticallyAdjustContentInsets: PropTypes.bool, // true /**
contentInset: EdgeInsetsPropType, // zeros * Controls whether iOS should automatically adjust the content inset
contentOffset: PointPropType, // zeros * for scroll views that are placed behind a navigation bar or
onScroll: PropTypes.func, * tab bar/ toolbar. The default value is true.
onScrollAnimationEnd: PropTypes.func, * @platform ios
scrollEnabled: PropTypes.bool, // true */
scrollIndicatorInsets: EdgeInsetsPropType, // zeros automaticallyAdjustContentInsets: PropTypes.bool,
showsHorizontalScrollIndicator: PropTypes.bool, /**
showsVerticalScrollIndicator: PropTypes.bool, * The amount by which the scroll view content is inset from the edges
style: StyleSheetPropType(ViewStylePropTypes), * of the scroll view. Defaults to `{0, 0, 0, 0}`.
scrollEventThrottle: PropTypes.number, // null * @platform ios
*/
contentInset: EdgeInsetsPropType,
/**
* Used to manually set the starting scroll offset.
* The default value is `{x: 0, y: 0}`.
* @platform ios
*/
contentOffset: PointPropType,
/** /**
* When true, the scroll view bounces when it reaches the end of the * When true, the scroll view bounces when it reaches the end of the
* content if the content is larger then the scroll view along the axis of * content if the content is larger then the scroll view along the axis of
* the scroll direction. When false, it disables all bouncing even if * the scroll direction. When false, it disables all bouncing even if
* the `alwaysBounce*` props are true. The default value is true. * the `alwaysBounce*` props are true. The default value is true.
* @platform ios
*/ */
bounces: PropTypes.bool, bounces: PropTypes.bool,
/** /**
* When true, gestures can drive zoom past min/max and the zoom will animate * When true, gestures can drive zoom past min/max and the zoom will animate
* to the min/max value at gesture end, otherwise the zoom will not exceed * to the min/max value at gesture end, otherwise the zoom will not exceed
* the limits. * the limits.
* @platform ios
*/ */
bouncesZoom: PropTypes.bool, bouncesZoom: PropTypes.bool,
/** /**
* When true, the scroll view bounces horizontally when it reaches the end * When true, the scroll view bounces horizontally when it reaches the end
* even if the content is smaller than the scroll view itself. The default * even if the content is smaller than the scroll view itself. The default
* value is true when `horizontal={true}` and false otherwise. * value is true when `horizontal={true}` and false otherwise.
* @platform ios
*/ */
alwaysBounceHorizontal: PropTypes.bool, alwaysBounceHorizontal: PropTypes.bool,
/** /**
* When true, the scroll view bounces vertically when it reaches the end * When true, the scroll view bounces vertically when it reaches the end
* even if the content is smaller than the scroll view itself. The default * even if the content is smaller than the scroll view itself. The default
* value is false when `horizontal={true}` and true otherwise. * value is false when `horizontal={true}` and true otherwise.
* @platform ios
*/ */
alwaysBounceVertical: PropTypes.bool, alwaysBounceVertical: PropTypes.bool,
/** /**
@ -98,6 +108,7 @@ var ScrollView = React.createClass({
* content is smaller than the scroll view bounds; when the content is * content is smaller than the scroll view bounds; when the content is
* larger than the scroll view, this property has no effect. The default * larger than the scroll view, this property has no effect. The default
* value is false. * value is false.
* @platform ios
*/ */
centerContent: PropTypes.bool, centerContent: PropTypes.bool,
/** /**
@ -121,6 +132,7 @@ var ScrollView = React.createClass({
* decelerates after the user lifts their finger. Reasonable choices include * decelerates after the user lifts their finger. Reasonable choices include
* - Normal: 0.998 (the default) * - Normal: 0.998 (the default)
* - Fast: 0.9 * - Fast: 0.9
* @platform ios
*/ */
decelerationRate: PropTypes.number, decelerationRate: PropTypes.number,
/** /**
@ -131,17 +143,19 @@ var ScrollView = React.createClass({
/** /**
* When true, the ScrollView will try to lock to only vertical or horizontal * When true, the ScrollView will try to lock to only vertical or horizontal
* scrolling while dragging. The default value is false. * scrolling while dragging. The default value is false.
* @platform ios
*/ */
directionalLockEnabled: PropTypes.bool, directionalLockEnabled: PropTypes.bool,
/** /**
* When false, once tracking starts, won't try to drag if the touch moves. * When false, once tracking starts, won't try to drag if the touch moves.
* The default value is true. * The default value is true.
* @platform ios
*/ */
canCancelContentTouches: PropTypes.bool, canCancelContentTouches: PropTypes.bool,
/** /**
* Determines whether the keyboard gets dismissed in response to a drag. * Determines whether the keyboard gets dismissed in response to a drag.
* - 'none' (the default), drags do not dismiss the keyboard. * - 'none' (the default), drags do not dismiss the keyboard.
* - 'onDrag', the keyboard is dismissed when a drag begins. * - 'on-drag', the keyboard is dismissed when a drag begins.
* - 'interactive', the keyboard is dismissed interactively with the drag * - 'interactive', the keyboard is dismissed interactively with the drag
* and moves in synchrony with the touch; dragging upwards cancels the * and moves in synchrony with the touch; dragging upwards cancels the
* dismissal. * dismissal.
@ -156,35 +170,83 @@ var ScrollView = React.createClass({
* is up dismisses the keyboard. When true, the scroll view will not catch * is up dismisses the keyboard. When true, the scroll view will not catch
* taps, and the keyboard will not dismiss automatically. The default value * taps, and the keyboard will not dismiss automatically. The default value
* is false. * is false.
* @platform ios
*/ */
keyboardShouldPersistTaps: PropTypes.bool, keyboardShouldPersistTaps: PropTypes.bool,
/** /**
* The maximum allowed zoom scale. The default value is 1.0. * The maximum allowed zoom scale. The default value is 1.0.
* @platform ios
*/ */
maximumZoomScale: PropTypes.number, maximumZoomScale: PropTypes.number,
/** /**
* The minimum allowed zoom scale. The default value is 1.0. * The minimum allowed zoom scale. The default value is 1.0.
* @platform ios
*/ */
minimumZoomScale: PropTypes.number, minimumZoomScale: PropTypes.number,
/**
* Fires at most once per frame during scrolling. The frequency of the
* events can be contolled using the `scrollEventThrottle` prop.
*/
onScroll: PropTypes.func,
/**
* Called when a scrolling animation ends.
* @platform ios
*/
onScrollAnimationEnd: PropTypes.func,
/** /**
* When true, the scroll view stops on multiples of the scroll view's size * When true, the scroll view stops on multiples of the scroll view's size
* when scrolling. This can be used for horizontal pagination. The default * when scrolling. This can be used for horizontal pagination. The default
* value is false. * value is false.
* @platform ios
*/ */
pagingEnabled: PropTypes.bool, pagingEnabled: PropTypes.bool,
/**
* When false, the content does not scroll.
* The default value is true.
* @platform ios
*/
scrollEnabled: PropTypes.bool,
/**
* This controls how often the scroll event will be fired while scrolling
* (in events per seconds). A higher number yields better accuracy for code
* that is tracking the scroll position, but can lead to scroll performance
* problems due to the volume of information being send over the bridge.
* The default value is zero, which means the scroll event will be sent
* only once each time the view is scrolled.
* @platform ios
*/
scrollEventThrottle: PropTypes.number,
/**
* The amount by which the scroll view indicators are inset from the edges
* of the scroll view. This should normally be set to the same value as
* the `contentInset`. Defaults to `{0, 0, 0, 0}`.
* @platform ios
*/
scrollIndicatorInsets: EdgeInsetsPropType,
/** /**
* When true, the scroll view scrolls to top when the status bar is tapped. * When true, the scroll view scrolls to top when the status bar is tapped.
* The default value is true. * The default value is true.
* @platform ios
*/ */
scrollsToTop: PropTypes.bool, scrollsToTop: PropTypes.bool,
/**
* When true, shows a horizontal scroll indicator.
*/
showsHorizontalScrollIndicator: PropTypes.bool,
/**
* When true, shows a vertical scroll indicator.
*/
showsVerticalScrollIndicator: PropTypes.bool,
/** /**
* An array of child indices determining which children get docked to the * An array of child indices determining which children get docked to the
* top of the screen when scrolling. For example, passing * top of the screen when scrolling. For example, passing
* `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the * `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the
* top of the scroll view. This property is not supported in conjunction * top of the scroll view. This property is not supported in conjunction
* with `horizontal={true}`. * with `horizontal={true}`.
* @platform ios
*/ */
stickyHeaderIndices: PropTypes.arrayOf(PropTypes.number), stickyHeaderIndices: PropTypes.arrayOf(PropTypes.number),
style: StyleSheetPropType(ViewStylePropTypes),
/** /**
* Experimental: When true, offscreen child views (whose `overflow` value is * Experimental: When true, offscreen child views (whose `overflow` value is
* `hidden`) are removed from their native backing superview when offscreen. * `hidden`) are removed from their native backing superview when offscreen.
@ -194,6 +256,7 @@ var ScrollView = React.createClass({
removeClippedSubviews: PropTypes.bool, removeClippedSubviews: PropTypes.bool,
/** /**
* The current scale of the scroll view content. The default value is 1.0. * The current scale of the scroll view content. The default value is 1.0.
* @platform ios
*/ */
zoomScale: PropTypes.number, zoomScale: PropTypes.number,
}, },