Flutter InkWell

flutter_week

Flutter Inkwell使用详解

该文章属于【Flutter每周一组件】系列,其它组件可以查看该系列下的文章,该系列会不间断更新;所有组件的demo已经上传值Github: https://github.com/xj124456/flutter_widget_demo 欢迎Star

使用场景

当需要给一个元素点击事件的时候,你可以用InkWell来包裹这个元素,它里面有常用交互事件和点击效果,可以简单实现想要的效果

预览

组件参数说明

1const InkWell({ 2 Key key, 3 Widget child, //子组件 4 GestureTapCallback onTap, //单击事件 5 GestureTapCallback onDoubleTap, //双击事件 6 GestureLongPressCallback onLongPress, //长按事件 7 GestureTapDownCallback onTapDown, //手指按下 8 GestureTapCancelCallback onTapCancel, //取消点击事件 9 ValueChanged<bool> onHighlightChanged, //突出显示或停止突出显示时调用 10 ValueChanged<bool> onHover, //当指针进入或退出墨水响应区域时调用 11 MouseCursor mouseCursor, 12 Color focusColor, //获取焦点颜色 13 Color hoverColor, //指针悬停时颜色 14 Color highlightColor, //按住不放时的颜色 15 MaterialStateProperty<Color> overlayColor, 16 Color splashColor, //溅墨颜色 17 InteractiveInkFeatureFactory splashFactory, //自定义溅墨效果 18 double radius, //溅墨半径 19 BorderRadius borderRadius, //溅墨元素边框圆角半径 20 ShapeBorder customBorder, //覆盖borderRadius的自定义剪辑边框 21 bool enableFeedback = true, //检测到的手势是否应该提供声音和/或触觉反馈,默认true 22 bool excludeFromSemantics = false, //是否将此小部件引入的手势从语义树中排除。默认false 23 FocusNode focusNode, 24 bool canRequestFocus = true, 25 ValueChanged<bool> onFocusChange, 26 bool autofocus = false, 27 })

案例代码

1Widget build(BuildContext context) { 2 return Scaffold( 3 appBar: AppBar( 4 title: Text('Flutter InkWell'), 5 ), 6 body: Center( 7 child: Column( 8 mainAxisAlignment: MainAxisAlignment.center, 9 children: [ 10 InkWell( 11 onTap: () { 12 print('点击了'); 13 }, 14 child: ListTile( 15 title: Text('InkWell的子组件是ListTile'), 16 trailing: Icon(Icons.chevron_right), 17 ), 18 ), 19 Divider(), 20 InkWell( 21 onTap: () { 22 print('点击了'); 23 }, 24 highlightColor: Colors.blue, 25 autofocus: true, 26 child: Text('InkWell的子组件是Text'), 27 ), 28 Divider(), 29 InkWell( 30 onTap: () { 31 print('必须要绑定事件,不然没效果'); 32 }, 33 borderRadius: BorderRadius.all(Radius.circular(50.0)), 34 splashColor: Colors.red, 35 child: Container( 36 padding: EdgeInsets.all(10.0), 37 child: Container( 38 width: 200.0, 39 height: 200.0, 40 decoration: BoxDecoration( 41 borderRadius: BorderRadius.all(Radius.circular(300.0))), 42 padding: EdgeInsets.all(10.0), 43 child: Text('InkWell的子组件是Container'), 44 ), 45 ), 46 ), 47 ], 48 )), 49 ); 50 }

觉得有用 ?喜欢就收藏,顺便点个赞吧,你的支持是我最大的鼓励!微信搜公众号 [DX前端框架知识库],发现更多Vue, React, Flutter, Uniapp, Nodejs, Html/Css等前端知识和实战.

DX前端,分享前端框架知识库,文章详见:DX前端

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )