@@ -455,22 +455,6 @@ const _ScrollView = forwardRef<HandlerRef<ScrollView & View, ScrollViewProps>, S
455455 }
456456 }
457457
458- function onScrollTouchStart ( e : NativeSyntheticEvent < TouchEvent > ) {
459- const { bindtouchstart } = props
460- bindtouchstart && bindtouchstart ( e )
461- if ( enhanced ) {
462- binddragstart &&
463- binddragstart (
464- getCustomEvent ( 'dragstart' , e , {
465- detail : {
466- scrollLeft : scrollOptions . current . scrollLeft ,
467- scrollTop : scrollOptions . current . scrollTop
468- } ,
469- layoutRef
470- } , props )
471- )
472- }
473- }
474458 function onScrollTouchMove ( e : NativeSyntheticEvent < TouchEvent > ) {
475459 bindtouchmove && bindtouchmove ( e )
476460 if ( enhanced ) {
@@ -487,22 +471,6 @@ const _ScrollView = forwardRef<HandlerRef<ScrollView & View, ScrollViewProps>, S
487471 }
488472 }
489473
490- function onScrollTouchEnd ( e : NativeSyntheticEvent < TouchEvent > ) {
491- bindtouchend && bindtouchend ( e )
492- if ( enhanced ) {
493- binddragend &&
494- binddragend (
495- getCustomEvent ( 'dragend' , e , {
496- detail : {
497- scrollLeft : scrollOptions . current . scrollLeft || 0 ,
498- scrollTop : scrollOptions . current . scrollTop || 0
499- } ,
500- layoutRef
501- } , props )
502- )
503- }
504- }
505-
506474 function onScrollDrag ( e : NativeSyntheticEvent < NativeScrollEvent > ) {
507475 const { x : scrollLeft , y : scrollTop } = e . nativeEvent . contentOffset
508476 updateScrollOptions ( e , { scrollLeft, scrollTop } )
@@ -523,6 +491,35 @@ const _ScrollView = forwardRef<HandlerRef<ScrollView & View, ScrollViewProps>, S
523491 hasCallScrollToLower . current = false
524492 hasCallScrollToUpper . current = false
525493 onScrollDrag ( e )
494+ if ( enhanced ) {
495+ binddragstart &&
496+ binddragstart (
497+ getCustomEvent ( 'dragstart' , e , {
498+ detail : {
499+ scrollLeft : scrollOptions . current . scrollLeft ,
500+ scrollTop : scrollOptions . current . scrollTop
501+ } ,
502+ layoutRef
503+ } , props )
504+ )
505+ }
506+ }
507+
508+ function onScrollDragEnd ( e : NativeSyntheticEvent < NativeScrollEvent > ) {
509+ onScrollDrag ( e )
510+ if ( enhanced ) {
511+ // 安卓上如果触发了默认的下拉刷新,binddragend可能不触发,只会触发 binddragstart
512+ binddragend &&
513+ binddragend (
514+ getCustomEvent ( 'dragend' , e , {
515+ detail : {
516+ scrollLeft : scrollOptions . current . scrollLeft || 0 ,
517+ scrollTop : scrollOptions . current . scrollTop || 0
518+ } ,
519+ layoutRef
520+ } , props )
521+ )
522+ }
526523 }
527524
528525 // 处理刷新
@@ -695,11 +692,9 @@ const _ScrollView = forwardRef<HandlerRef<ScrollView & View, ScrollViewProps>, S
695692 ref : scrollViewRef ,
696693 onScroll : enableSticky ? scrollHandler : onScroll ,
697694 onContentSizeChange : onContentSizeChange ,
698- bindtouchstart : ( ( enhanced && binddragstart ) || bindtouchstart ) && onScrollTouchStart ,
699695 bindtouchmove : ( ( enhanced && binddragging ) || bindtouchmove ) && onScrollTouchMove ,
700- bindtouchend : ( ( enhanced && binddragend ) || bindtouchend ) && onScrollTouchEnd ,
701696 onScrollBeginDrag : onScrollDragStart ,
702- onScrollEndDrag : onScrollDrag ,
697+ onScrollEndDrag : onScrollDragEnd ,
703698 onMomentumScrollEnd : onScrollEnd
704699 } ,
705700 ( simultaneousHandlers ? { simultaneousHandlers } : { } ) ,
0 commit comments