flutter手势

匿名 (未验证) 提交于 2019-12-02 23:55:01

import 'package:flutter/material.dart'; import 'package:flutter_app/pages/dismissed_page.dart';  class GestureAppPage extends StatefulWidget {   @override   State<StatefulWidget> createState() {     // TODO: implement createState     return new _GestureAppPageState();   } }  class _GestureAppPageState extends State<GestureAppPage> {    var tapEvent = '';  //  _showSnakeBar(String str) { //    final snackBar = new SnackBar(content: new Text(str)); //    Scaffold.of(context).showSnackBar(snackBar); //  }    @override   Widget build(BuildContext context) {     // TODO: implement build     return new Scaffold(       appBar: new AppBar(         title: new Text('Gesture 学习'),         centerTitle: true,       ),       body: new ListView(         children: <Widget>[           new Padding(             padding: const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),             child: new RaisedButton(                 textColor: Colors.black,                 child: new Text('RaisedButton 点击'),                 onPressed: () {                   final snackBar = new SnackBar(content: new Text("这是一个 RaisedButton 点击事件,onPressed处理"));                   Scaffold.of(context).showSnackBar(snackBar); //                  _showSnakeBar("这是一个 RaisedButton 点击事件,onPressed处理");                 }),           ),           new Padding(             padding: const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),             child: new GestureDetector(               onTap: () {                 final snackBar = new SnackBar(content: new Text("这是一个GestureDetector监听的onTap事件"));                 Scaffold.of(context).showSnackBar(snackBar); //                _showSnakeBar("这是一个GestureDetector监听的onTap事件");               },               child: new BorderButton('GestureDetector onTap 按钮'),             ),           ),           new Padding(             padding: const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),             child:                 new Text(tapEvent, style: Theme.of(context).textTheme.display1),           ),           new Padding(             padding: const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),             child: new GestureDetector(               onTapDown: (tapDown) {                 setState(() {                   tapEvent = '这是GestureDetector监听的onTapDown事件';                 });               },               onTapUp: (tapUp) {                 setState(() {                   tapEvent = '这是GestureDetector监听的onTapUp事件';                 });               },               onTapCancel: () {                 setState(() {                   tapEvent = '这是GestureDetector监听的onTapCancel事件';                 });               },               onDoubleTap: () {                 setState(() {                   tapEvent = '这是GestureDetector监听的onDoubleTap事件';                 });               },               onLongPress: () {                 setState(() {                   tapEvent = '这是GestureDetector监听的onLongPress事件';                 });               },               child: new BorderButton('GestureDetector onTap 分解事件按钮'),             ),           ),           new Padding(             padding: const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),             child: new Text('上面的按钮通过GestureDetector监听事件后,涟漪效果消失了,使用下面的方案解决'),           ),           new Padding(               padding:                   const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),               child: new InkWell(                 borderRadius: new BorderRadius.all(new Radius.circular(10.0)),                 onTap: () {                   final snackBar = new SnackBar(content: new Text("这是一个InkWell监听的onTap事件"));                   Scaffold.of(context).showSnackBar(snackBar); //                  _showSnakeBar("这是一个InkWell监听的onTap事件");                 },                 child: new BorderButton('InkWell 按钮'),               )),           new Padding(               padding:                   const EdgeInsets.only(left: 10.0, top: 10.0, right: 10.0),               child: new InkWell(                 borderRadius: new BorderRadius.all(new Radius.circular(10.0)),                 onTap: () {                   Navigator.of(context).push(new MaterialPageRoute(builder: (context)=> new  DismissedPage()));                   },                  child: new BorderButton('Dismissed 手势'),               )),         ],       ),     );   } }  class BorderButton extends StatelessWidget {   final String text;    BorderButton(this.text);    @override   Widget build(BuildContext context) {     // TODO: implement build     return new Container(       alignment: Alignment.center,       padding: const EdgeInsets.only(           left: 10.0, top: 10.0, right: 10.0, bottom: 10.0),       height: 48.0,       decoration: new BoxDecoration(         border: new Border.all(           width: 1.0,           color: Colors.blue,         ),         borderRadius: new BorderRadius.all(new Radius.circular(10.0)),       ), //      foregroundDecoration: new BoxDecoration( //        border: new Border.all( //          width: 1.0, //          color: Colors.red, //        ), //        borderRadius: new BorderRadius.all(new Radius.circular(10.0)), //      ),       child: new Text(text),     );   } }  class GesturePage extends StatelessWidget {   @override   Widget build(BuildContext context) {     // TODO: implement build     return new Scaffold(       body: new GestureAppPage(),     );   } }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!