一个 Flutter 插件,可提供平台无关/相关的滚动和平移功能。
特点
- 此包可以水平和垂直滚动,一旦在一个特定方向上滚动,滚动就会被锁定。
- 此包在移动平台上使用触摸手势,在桌面/网络上使用鼠标/触控板输入。
入门
将 dual_scroll: any 添加到您的 pubspec.yaml 的 dependencies 部分,如下所示。
dependencies:
# Your other dependencies...
dual_scroll: any
# Your other dependencies...
运行 flutter pub get 来获取包。
或者,您的编辑器可能支持
flutter pub get
用法
开始导入包
import 'package:dual_scroll/dual_scroll.dart';
通过像这样包装您想要可滚动的 Widget 来使用
return DualScroll(
verticalScrollbar: ScrollBar.defaultScrollBar(),
horizontalScrollbar: ScrollBar.defaultScrollBar(),
child: Container(), /* Your child widget here*/
);
与 ListView/GridView/Scrollable Widgets 作为子项/子项一起使用
要在拥有 ListView/GridView/Scrollable Widget 作为其子项/子项的同时使用 DualScroll widget,请通过以下方式初始化 DualScroll
return DualScroll(
verticalScrollController: yourVerticalScrollController,
horizontalScrollController: yourHorizontalScrollController,
verticalScrollbar: ScrollBar.defaultScrollBar(),
horizontalScrollbar: ScrollBar.defaultScrollBar(),
child: Container(), /* Your child widget here*/
);
自定义附加属性
您可以将 ScrollBarSettings 传递给构造函数中的 DualScroll widget,并附带适当的参数(不一定需要提供所有参数)
var scrollBarSettings = ScrollBarSettings(
keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag, // Defaults to ScrollViewKeyboardDismissBehavior.manual
clipBehavior: Clip.none, // Defaults to [Clip.hardEdge]
verticalRestorationId: 'vertId', // Defaults to null
horizontalRestorationId: 'horizId', // Defaults to null
verticalPhysics = const ClampingScrollPhysics(), // Defaults to BouncingScrollPhysics
horizontalPhysics = const ClampingScrollPhysics(), // Defaults to BouncingScrollPhysics
verticalPadding: const EdgeInsets.all(8.0), //Defaults to null
horizontalPadding: const EdgeInsets.all(8.0), //defaults to null
);
return DualScroll(
// scrollBars and scrollControllers here
settings: scrollBarSettings, //Optional
pillColor: Colors.blueAccent, //Optional
dimmedPillColor: Colors.blueAccent.withOpacity(0.8), //Optional
trackColor: Colors.blueAccent.withOpacity(0.8), //Optional
trackColorDimmed: Colors.blueAccent.withOpacity(0.6), //Optional
hoverColor: Colors.blue.withOpacity(0.85), //Optional
child: child, // Required
);
附加信息
如果您遇到任何问题,请在此 Github 上提交。如果您想为此仓库做出贡献,请在 Github 上打开一个 PR。如果您想详细查看 API,请访问我们网站上的 dual_scroll。
此外,如果您查看我们的 网站 和我们的 应用程序,我们将非常感激。