FlutterのScrollViewのスクロールを能動的に停止させる方法を探しています。
動作としては
スクロール状態→複数タッチ→スクロールをアイドル状態
といった流れを考えています。
すでにListenerウィジェットで複数タッチの取得はできており
スクロール途中の状態もNotificationListener<ScrollNotification>で取得は出来ているのですが
こちらから停止させることができていない状態です。
ScrollPositionのドキュメントに
beginActivity(ScrollActivity? newActivity) と言うメソッドは確認しているのですがこちらを
どう実装すればいいかが不明な状態です。
解決できる方がいたら教えていただけると助かります。
下記ソースコードになります。
dart
1class _MyPageState extends State<MyPage> { 2 3int _touchCount = 0; 4 5 6 Widget build(BuildContext context) { 7 var _screenSize = MediaQuery.of(context).size; 8 9 return Scaffold( 10 body: NotificationListener<ScrollNotification>( 11 onNotification: (ScrollNotification scrollNotification) { 12 13 if(_touchCount >= 2) 14 { 15 setState(() { 16 //この中でスクロールの停止処理を入れる予定です。 17 }); 18 } 19 20 return true; 21 }, 22 child: Listener( 23 onPointerDown: incrementEnter, 24 onPointerUp: incrementExit, 25 onPointerCancel: incrementExit, 26 child: SingleChildScrollView( 27 28 ), 29 ), 30 ), 31 ); 32 } 33 34 void incrementEnter(PointerEvent details) 35 { 36 touchCount++; 37 } 38 39 void incrementExit(PointerEvent details) 40 { 41 touchCount--; 42 } 43 44}
回答1件
あなたの回答
tips
プレビュー