掘金小册flutter练习笔记 - 认识GestureDetector各种默认手势 (1、2)


发文时间:2022年06月16日 17:27:51     编辑:Aaron      标签:flutter学习 1938


记录flutter手势的学习历程

GestureDetector 常用手势主要为 “单机”,“双击”,“长按”,“平移”等手势,这些手势回调都可以在GestureDetector中获取到

源码如下

image.png

代码案例

/*
 onTap、onTapDown、onTapCancel、onTapUp获取回调案例
*/

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  Widget tapDemo() {
    return GestureDetector(
        onTap: _onTap,
        onTapDown: _onTapDown,
        onTapCancel: _onTapCancel,
        onTapUp: _onTapUp,
        child: Container(
          color: Colors.blue[200],
          height: 150,
          width: 150,
        ));
  }

  void _onTap() {
    print('-----_onTap---------');
  }

  void _onTapDown(TapDownDetails details) {
    print('-----_onTapDown-localPosition 点击位置在当前组件左上角的偏移量:--${details.localPosition}------');
    print('-----_onTapDown-globalPosition 点击位置在手机屏幕左上角的偏移量 :--${details.globalPosition}------');
    print('-----_onTapDown-kind 引发事件的设备类型。 :--${details.kind}------');
  }

  void _onTapCancel() {
    print('-----_onTapCancel 点击取消---------');
  }

  void _onTapUp(TapUpDetails details) {
    print('-----_onTapUp-localPosition:--${details.localPosition}------');
    print('-----_onTapUp-globalPosition:--${details.globalPosition}------');
    print('-----_onTapUp-kind:--${details.kind}------');
  }

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Aaron Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: Center(
          child: tapDemo(),
        ),
      ),
    );
  }
}

运行和效果

image.png

在实战项目中可用到的一些场景,用GestureDetector包裹手势操作预防有需回调的功能需求。

image.png


                     好记性不如烂笔头

 

若无特殊说明,此文章为博主原创。
写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/67.html




SITE MAP

  FOLLOW US