flutter实现点击事件

 更新时间:2020年08月26日 16:47:51   作者:WongKyunban  
这篇文章主要为大家详细介绍了flutter实现点击事件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了flutter实现点击事件的具体代码,供大家参考,具体内容如下

在Android中,您可以通过调用方法setOnClickListener将OnClick绑定到按钮等view上。

在Flutter中,有两种方法:

1.如果Widget支持事件监听,则可以将一个函数传递给它并进行处理。例如,RaisedButton有一个onPressed参数

@override
Widget build(BuildContext context) {
 return new RaisedButton(
  onPressed: () {
  print("click");
  },
  child: new Text("Button"));
}

2.如果Widget不支持事件监听,则可以将该Widget包装到GestureDetector中,并将处理函数传递给onTap参数

class SampleApp extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return new Scaffold(
  body: new Center(
  child: new GestureDetector(
  child: new FlutterLogo(
   size: 200.0,
  ),
  onTap: () {
   print("tap");
  },
  ),
 ));
 }
}

2.1.使用GestureDetector,可以监听多种手势

(1)Tap

onTapDown
onTapUp
onTap
onTapCancel

(2)Double tap

onDoubleTap 用户快速连续两次在同一位置轻敲屏幕

(3)长按

onLongPress

(4)垂直拖动

onVerticalDragStart
onVerticalDragUpdate
onVerticalDragEnd

(5)水平拖拽

onHorizontalDragStart
onHorizontalDragUpdate
onHorizontalDragEnd

2.2.示例:监听FlutterLogo的双击事件,双击时使其旋转。

void main() => runApp(DemoApp());

class DemoApp extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return new MaterialApp(
  title: '导航演示1',
  home: new MyAppHome(),
 );
 }
}

class MyAppHome extends StatefulWidget{
 @override
 _MyAppHomeState createState() => _MyAppHomeState();

}
class _MyAppHomeState extends State<MyAppHome> with TickerProviderStateMixin{
 AnimationController controller;
 CurvedAnimation curve;

 @override
 void initState() {
 super.initState();
 controller = new AnimationController(
  duration: const Duration(milliseconds: 2000), vsync: this);
 curve = new CurvedAnimation(parent: controller, curve: Curves.easeIn);
 }

 @override
 Widget build(BuildContext context) {
 return new Scaffold(
  body: new Center(
  child: new GestureDetector(
  child: new RotationTransition(
   turns: curve,
   child: new FlutterLogo(
    size: 200.0,
   )),
  onDoubleTap: () {
   if (controller.isCompleted) {
   controller.reverse();
   } else {
   controller.forward();
   }
  },
  ),
 ));
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Android打开相机和相册实例代码

    Android打开相机和相册实例代码

    这篇文章主要为大家详细介绍了Android打开相机和相册实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • android仿爱奇艺加载动画实例

    android仿爱奇艺加载动画实例

    这篇文章主要介绍了android仿爱奇艺加载动画实例,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    2016-10-10
  • Android实现数据按照时间排序

    Android实现数据按照时间排序

    这篇文章主要为大家详细介绍了Android实现数据按照时间排序的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 基于Android Kotlin高频面试题解析

    基于Android Kotlin高频面试题解析

    这篇文章主要为大家介绍了基于Android Kotlin高频面试题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 房卡麻将分析系列

    房卡麻将分析系列 "牌局回放" 之 数据设计详解及实例

    这篇文章主要介绍了房卡麻将分析系列 "牌局回放" 之 数据设计详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • Android编程实现自定义分享列表ACTION_SEND功能的方法

    Android编程实现自定义分享列表ACTION_SEND功能的方法

    这篇文章主要介绍了Android编程实现自定义分享列表ACTION_SEND功能的方法,结合实例形式详细分析了自定义分享列表功能的步骤与具体操作技巧,需要的朋友可以参考下
    2017-02-02
  • Kotlin面向对象知识点讲解

    Kotlin面向对象知识点讲解

    面向对象编程通过对事物的抽象,大大的简化了程序的开发难度。我们常用的编程语言:Java、C++、Python都属于面向对象编程。Kotlin与java类似,也是一种面向对象编程语言。本文从面向对象三个基本特征:封装、继承、多态,来阐述一下Kotlin中的面向对象编程
    2022-12-12
  • Android关键字persistent详细分析

    Android关键字persistent详细分析

    这篇文章主要介绍了Android关键字persistent的相关资料,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
    2021-04-04
  • Android中AlarmManager基本用法分析

    Android中AlarmManager基本用法分析

    这篇文章主要介绍了Android中AlarmManager基本用法,结合实例形式简单分析了AlarmManager的基本类型、方法及简单使用示例,需要的朋友可以参考下
    2016-08-08
  • Android热修复Tinker接入及源码解读

    Android热修复Tinker接入及源码解读

    热修复这项技术,基本上已经成为项目比较重要的模块了。主要因为项目在上线之后,都难免会有各种问题本文讲述了Android热修复Tinker接入及源码解读
    2018-09-09

最新评论