diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java index 34e21553d39..46e0ccf36c6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java @@ -379,22 +379,4 @@ public class ReactScrollViewManager extends ViewGroupManager public void setScrollEventThrottle(ReactScrollView view, int scrollEventThrottle) { view.setScrollEventThrottle(scrollEventThrottle); } - - @ReactProp(name = "inverted") - public void setInverted(ReactScrollView view, boolean inverted) { - // Usually when inverting the scroll view we are using scaleY: -1 on the list - // and on the parent container. HOWEVER, starting from android API 33 there is - // a bug that can cause an ANR due to that. Thus we are using different transform - // commands to circumvent the ANR. This however causes the vertical scrollbar to - // be on the wrong side. Thus we are moving it to the other side, when the list - // is inverted. - // See also: - // - https://github.com/facebook/react-native/issues/35350 - // - https://issuetracker.google.com/issues/287304310 - if (inverted) { - view.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_LEFT); - } else { - view.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_DEFAULT); - } - } } diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp index 6222223a822..fb70d8a6176 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp @@ -319,15 +319,7 @@ ScrollViewProps::ScrollViewProps( rawProps, "scrollToOverflowEnabled", sourceProps.scrollToOverflowEnabled, - {})), - inverted( - CoreFeatures::enablePropIteratorSetter ? sourceProps.inverted - : convertRawProp( - context, - rawProps, - "inverted", - sourceProps.inverted, - {})) {} + {})) {} void ScrollViewProps::setProp( const PropsParserContext &context, @@ -376,7 +368,6 @@ void ScrollViewProps::setProp( RAW_SET_PROP_SWITCH_CASE_BASIC(snapToEnd); RAW_SET_PROP_SWITCH_CASE_BASIC(contentInsetAdjustmentBehavior); RAW_SET_PROP_SWITCH_CASE_BASIC(scrollToOverflowEnabled); - RAW_SET_PROP_SWITCH_CASE_BASIC(inverted); } } @@ -501,9 +492,7 @@ SharedDebugStringConvertibleList ScrollViewProps::getDebugProps() const { debugStringConvertibleItem( "snapToStart", snapToStart, defaultScrollViewProps.snapToStart), debugStringConvertibleItem( - "snapToEnd", snapToEnd, defaultScrollViewProps.snapToEnd), - debugStringConvertibleItem( - "inverted", inverted, defaultScrollViewProps.inverted)}; + "snapToEnd", snapToEnd, defaultScrollViewProps.snapToEnd)}; } #endif diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h index a734c14d568..dea44da3af5 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h @@ -68,7 +68,6 @@ class ScrollViewProps final : public ViewProps { ContentInsetAdjustmentBehavior contentInsetAdjustmentBehavior{ ContentInsetAdjustmentBehavior::Never}; bool scrollToOverflowEnabled{false}; - bool inverted{false}; #pragma mark - DebugStringConvertible diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index 30f456d52b4..0c078e08595 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -14,7 +14,6 @@ import type { LayoutEvent, ScrollEvent, } from 'react-native/Libraries/Types/CoreEventTypes'; -import Platform from 'react-native/Libraries/Utilities/Platform'; import type {ViewToken} from './ViewabilityHelper'; import type { Item, @@ -1970,15 +1969,7 @@ class VirtualizedList extends StateSafePureComponent { const styles = StyleSheet.create({ verticallyInverted: { - transform: - // Android 13 Bug Workaround: - // On Android, we need to invert both axes to mitigate a native bug - // that could lead to ANRs. - // Simply using scaleY: -1 leads to the application of scaleY and - // rotationX natively, resulting in the ANR. - // For more information, refer to the following Android tracking issue: - // https://issuetracker.google.com/issues/287304310 - Platform.OS === 'android' ? [{scale: -1}] : [{scaleY: -1}], + transform: [{scaleY: -1}], }, horizontallyInverted: { transform: [{scaleX: -1}],