RN: Update ViewConfig for ScrollView
Summary: Updates `ReactScrollViewManager` and the `ViewConfig` for `ScrollView` so that they are equivalent. - `inverted` was missing. - `contentOffset` was missing differ on Android. (However, there does not seem to be any perceivable behavior difference besides the native `ViewConfig` being different.) Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D25084470 fbshipit-source-id: 8bea3b7a692c1038819a4147b174583a4faa71e9
This commit is contained in:
Родитель
de92e7405d
Коммит
f6b8736b09
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import type {PartialViewConfig} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';
|
import type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';
|
||||||
|
|
||||||
const ScrollViewViewConfig = {
|
const ScrollViewViewConfig = {
|
||||||
uiViewClassName: 'RCTScrollView',
|
uiViewClassName: 'RCTScrollView',
|
||||||
|
@ -28,15 +28,22 @@ const ScrollViewViewConfig = {
|
||||||
bouncesZoom: true,
|
bouncesZoom: true,
|
||||||
canCancelContentTouches: true,
|
canCancelContentTouches: true,
|
||||||
centerContent: true,
|
centerContent: true,
|
||||||
contentInset: {diff: require('../../Utilities/differ/pointsDiffer')},
|
contentInset: {
|
||||||
contentOffset: {diff: require('../../Utilities/differ/pointsDiffer')},
|
diff: require('../../Utilities/differ/pointsDiffer'),
|
||||||
|
},
|
||||||
|
contentOffset: {
|
||||||
|
diff: require('../../Utilities/differ/pointsDiffer'),
|
||||||
|
},
|
||||||
contentInsetAdjustmentBehavior: true,
|
contentInsetAdjustmentBehavior: true,
|
||||||
decelerationRate: true,
|
decelerationRate: true,
|
||||||
directionalLockEnabled: true,
|
directionalLockEnabled: true,
|
||||||
disableIntervalMomentum: true,
|
disableIntervalMomentum: true,
|
||||||
endFillColor: {process: require('../../StyleSheet/processColor')},
|
endFillColor: {
|
||||||
|
process: require('../../StyleSheet/processColor'),
|
||||||
|
},
|
||||||
fadingEdgeLength: true,
|
fadingEdgeLength: true,
|
||||||
indicatorStyle: true,
|
indicatorStyle: true,
|
||||||
|
inverted: true,
|
||||||
keyboardDismissMode: true,
|
keyboardDismissMode: true,
|
||||||
maintainVisibleContentPosition: true,
|
maintainVisibleContentPosition: true,
|
||||||
maximumZoomScale: true,
|
maximumZoomScale: true,
|
||||||
|
|
|
@ -154,7 +154,8 @@ function getDifferForType(
|
||||||
case 'UIEdgeInsets':
|
case 'UIEdgeInsets':
|
||||||
return insetsDiffer;
|
return insetsDiffer;
|
||||||
// Android Types
|
// Android Types
|
||||||
// (not yet implemented)
|
case 'Point':
|
||||||
|
return pointsDiffer;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -305,7 +305,7 @@ public class ReactScrollViewManager extends ViewGroupManager<ReactScrollView>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "contentOffset")
|
@ReactProp(name = "contentOffset", customType = "Point")
|
||||||
public void setContentOffset(ReactScrollView view, ReadableMap value) {
|
public void setContentOffset(ReactScrollView view, ReadableMap value) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
double x = value.hasKey("x") ? value.getDouble("x") : 0;
|
double x = value.hasKey("x") ? value.getDouble("x") : 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче