File tree Expand file tree Collapse file tree 5 files changed +35
-2
lines changed
e2e/ui-tests-app/app/scroll-view
tns-core-modules-widgets/android/widgets/src/main/java/org/nativescript/widgets Expand file tree Collapse file tree 5 files changed +35
-2
lines changed Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ export function loadExamples() {
1717 examples . set ( "safe-area-images" , "scroll-view/safe-area-images-page" ) ;
1818 examples . set ( "safe-area-images-overflow" , "scroll-view/safe-area-images-overflow-page" ) ;
1919 examples . set ( "layout-outside-scroll" , "scroll-view/layout-outside-scroll-page" ) ;
20+ examples . set ( "scroll-enabled" , "scroll-view/scroll-enabled-page" ) ;
2021
2122 return examples ;
2223}
Original file line number Diff line number Diff line change 1+ import { EventData as ObservableEventData } from "tns-core-modules/data/observable" ;
2+ import { GestureStateTypes , PanGestureEventData } from "tns-core-modules/ui/gestures" ;
3+ import { Page } from "tns-core-modules/ui/page" ;
4+
5+ export function pageLoaded ( args : ObservableEventData ) {
6+ var page = < Page > args . object ;
7+ }
8+
9+ export function panLayout ( args : PanGestureEventData )
10+ {
11+ const scrollView = args . object . parent ;
12+
13+ if ( args . state === GestureStateTypes . began ) {
14+ args . object . previousDeltaY = 0 ;
15+ scrollView . isScrollEnabled = false ;
16+ }
17+ else if ( args . state === GestureStateTypes . changed ) {
18+ const diff = ( args . deltaY - args . object . previousDeltaY ) ;
19+ args . object . translateY += diff ;
20+ args . object . previousDeltaY = args . deltaY ;
21+ }
22+ else if ( args . state === GestureStateTypes . ended ) {
23+ scrollView . isScrollEnabled = true ;
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ <Page xmlns =" http://schemas.nativescript.org/tns.xsd" loaded =" pageLoaded" class =" page" >
2+ <ScrollView id =" scroll-view" height =" 300" >
3+ <StackLayout height =" 500" backgroundColor =" red" pan =" panLayout" >
4+ <Label text =" Move Me" color =" #fff" fontSize =" 22" />
5+ </StackLayout >
6+ </ScrollView >
7+ </Page >
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ public boolean onInterceptTouchEvent(MotionEvent ev) {
7070
7171 @ Override
7272 public boolean onTouchEvent (MotionEvent ev ) {
73- if (!this .scrollEnabled && ev .getAction () == MotionEvent .ACTION_DOWN ) {
73+ if (!this .scrollEnabled && ( ev .getAction () == MotionEvent .ACTION_DOWN || ev . getAction () == MotionEvent . ACTION_MOVE ) ) {
7474 return false ;
7575 }
7676
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ public boolean onInterceptTouchEvent(MotionEvent ev) {
7070
7171 @ Override
7272 public boolean onTouchEvent (MotionEvent ev ) {
73- if (!this .scrollEnabled && ev .getAction () == MotionEvent .ACTION_DOWN ) {
73+ if (!this .scrollEnabled && ( ev .getAction () == MotionEvent .ACTION_DOWN || ev . getAction () == MotionEvent . ACTION_MOVE ) ) {
7474 return false ;
7575 }
7676
You can’t perform that action at this time.
0 commit comments