在Android中所有View都可以设置OnClick事件,但是在Flutter中除开少数自带Press事件的widget,大部分控件都是不带事件的,如果需要添加事件,就可以用GestureDetector作为父widget包裹需要添加事件的widget
import 'package:flutter/material.dart'; void main() { runApp(new SampleApp()); } class SampleApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return new MaterialApp( title: 'Sample App', theme: new ThemeData( primarySwatch: Colors.blue, ), home: new SampleAppPage(), ); } } class SampleAppPage extends StatefulWidget { SampleAppPage({Key key}) : super(key: key); @override _SampleAppPageState createState() => new _SampleAppPageState(); } class _SampleAppPageState extends State<SampleAppPage> { @override Widget build(BuildContext context) { return new GestureDetector( //双击 onDoubleTap: () { print("onDoubleTap"); }, //单击 onTap: () { print("onTap"); }, //长按 onLongPress: () { print("onLongPress"); }, child: new Container( height: 36.0, padding: const EdgeInsets.all(8.0), margin: const EdgeInsets.symmetric(horizontal:8.0), decoration: new BoxDecoration( borderRadius: new BorderRadius.circular(5.90), color: Colors.lightGreen, ), child: new Center(child: new Text("点我"),), ), ); } }
输出结果为: