From de42030931f560746077fb90b580aebd9fc85967 Mon Sep 17 00:00:00 2001 From: imajoriri Date: Wed, 20 Sep 2023 10:09:18 +0900 Subject: [PATCH] add physics --- lib/src/infinite_scroll_tab_view.dart | 4 ++++ lib/src/inner_infinite_scroll_tab_view.dart | 16 +++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/src/infinite_scroll_tab_view.dart b/lib/src/infinite_scroll_tab_view.dart index b98823e..e28cf17 100644 --- a/lib/src/infinite_scroll_tab_view.dart +++ b/lib/src/infinite_scroll_tab_view.dart @@ -35,6 +35,7 @@ class InfiniteScrollTabView extends StatelessWidget { this.size, this.forceFixedTabWidth = false, this.fixedTabWidthFraction = 0.5, + this.physics = const PageScrollPhysics(), }) : super(key: key); /// A length of tabs and pages. @@ -131,6 +132,8 @@ class InfiniteScrollTabView extends StatelessWidget { /// This will be ignored when [forceFixedTabWidth] is false. final double fixedTabWidthFraction; + final ScrollPhysics physics; + @override Widget build(BuildContext context) { if (indicatorHeight != null) { @@ -156,6 +159,7 @@ class InfiniteScrollTabView extends StatelessWidget { tabPadding: tabPadding, forceFixedTabWidth: forceFixedTabWidth, fixedTabWidthFraction: fixedTabWidthFraction, + physics: physics, ); } } diff --git a/lib/src/inner_infinite_scroll_tab_view.dart b/lib/src/inner_infinite_scroll_tab_view.dart index 0353a32..7039754 100644 --- a/lib/src/inner_infinite_scroll_tab_view.dart +++ b/lib/src/inner_infinite_scroll_tab_view.dart @@ -1,7 +1,7 @@ import 'dart:math' as math; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart'; import '../infinite_scroll_tab_view.dart'; import 'cycled_list_view.dart'; @@ -30,6 +30,7 @@ class InnerInfiniteScrollTabView extends StatefulWidget { required this.tabPadding, required this.forceFixedTabWidth, required this.fixedTabWidthFraction, + this.physics = const PageScrollPhysics(), }) : super(key: key); final Size size; @@ -50,6 +51,7 @@ class InnerInfiniteScrollTabView extends StatefulWidget { final double tabPadding; final bool forceFixedTabWidth; final double fixedTabWidthFraction; + final ScrollPhysics physics; @override InnerInfiniteScrollTabViewState createState() => @@ -189,11 +191,11 @@ class InnerInfiniteScrollTabViewState extends State super.initState(); _indicatorAnimationController = - AnimationController(vsync: this, duration: _tabAnimationDuration) - ..addListener(() { - if (_indicatorAnimation == null) return; - _indicatorSize.value = _indicatorAnimation!.value; - }); + AnimationController(vsync: this, duration: _tabAnimationDuration) + ..addListener(() { + if (_indicatorAnimation == null) return; + _indicatorSize.value = _indicatorAnimation!.value; + }); calculateTabBehaviorElements(widget.textScaleFactor); @@ -324,7 +326,7 @@ class InnerInfiniteScrollTabViewState extends State scrollDirection: Axis.horizontal, contentCount: widget.contentLength, controller: _pageController, - physics: const PageScrollPhysics(), + physics: widget.physics, itemBuilder: (context, modIndex, rawIndex) => SizedBox( width: widget.size.width, child: ValueListenableBuilder(