Flutter 中监听滑动事件 Flutter 中监听滑动事件是移动应用程序中非常重要的一部分,对用户交互体验有着直接的影响。在 Flutter 中,可以使用 Listener widget 来监听原始触摸事件,它也是一个功能性 widget。Listener 的常见属性有 onPointerDown、onPointerMove、onPointerUp 和 onPointerCancel 等,分别对应手指按下、手指移动、手指抬起和触摸事件取消四个阶段。 在移动端,各个平台或 UI 系统的原始指针事件模型基本都是一致,即:一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。 使用 Listener widget 可以监听滑动事件,例如: ``` Listener( onPointerDown: (dowPointEvent){}, onPointerMove: (movePointEvent){}, onPointerUp: (upPointEvent){}, child: Container( child: Text('Listener的监听') ) ) ``` 在实际应用中,监听滑动事件可以用于很多场景,例如下拉刷新和上拉加载。下拉刷新需要借助 RefreshIndicator,在 listview 外面包裹一层 RefreshIndicator,然后在 RefreshIndicator 里面实现 onRefresh 方法。 ``` RefreshIndicator( onRefresh: _refresh, child: ListView.builder( padding: EdgeInsets.only(bottom: Adapt.px(40)), shrinkWrap: true, controller: _scrollController, physics: AlwaysScrollableScrollPhysics(), itemCount: _dataList.length, itemBuilder: (context, item) { return listCard(_dataList[item]); } ) ) ``` 加载更多需要对 ListView 进行监听,所以需要进行监听器的设置,在 State 中进行监听器的初始化。 ``` ScrollController _scrollController = new ScrollController(); _scrollController.addListener(() { // 如果滑动到底部 if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) { // do something } }); ``` 也可以使用 Listener 来监听滑动事件,通过 Listener 的 onPointerMove(手指在屏幕上滑动)来监听滑动的距离。 ``` Listener( onPointerMove: (movePointEvent){ // 监听滑动的距离 }, child: Container( child: Text('Listener的监听') ) ) ``` 监听滑动事件在 Flutter 中是一种非常重要的技术,能够帮助开发者创造出更加流畅和自然的用户交互体验。
- 粉丝: 5
- 资源: 966
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助