Flutter InkWell - Flutter每周一组件

Flutter Inkwell使用详解

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

使用场景

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

预览

组件参数说明

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

案例代码

Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('Flutter InkWell'),      ),      body: Center(          child: Column(        mainAxisAlignment: MainAxisAlignment.center,        children: [          InkWell(            onTap: () {              print('点击了');            },            child: ListTile(              title: Text('InkWell的子组件是ListTile'),              trailing: Icon(Icons.chevron_right),            ),          ),          Divider(),          InkWell(            onTap: () {              print('点击了');            },            highlightColor: Colors.blue,            autofocus: true,            child: Text('InkWell的子组件是Text'),          ),          Divider(),          InkWell(            onTap: () {              print('必须要绑定事件,不然没效果');            },            borderRadius: BorderRadius.all(Radius.circular(50.0)),            splashColor: Colors.red,            child: Container(              padding: EdgeInsets.all(10.0),              child: Container(                width: 200.0,                height: 200.0,                decoration: BoxDecoration(                    borderRadius: BorderRadius.all(Radius.circular(300.0))),                padding: EdgeInsets.all(10.0),                child: Text('InkWell的子组件是Container'),              ),            ),          ),        ],      )),    );  }
(0)

相关推荐

  • Flutter 学习

    一.认识Fluter 几乎完全还原手机app,相当于原生app. 二.环境搭建(Windows) Windows 7以上64位系统,磁盘空间大于3个G,因为要安装模拟虚拟机 1.java环境的安装,下 ...

  • 令人爱不释手的古董墨水瓶Vintage Inkwell

    墨水瓶是一个小罐子或容器,常常用玻璃,瓷,银,铜,锡等制成.用于写作的人方便使用.一个墨水瓶通常有一个盖子,以防止污染,蒸发,意外泄漏,和过多的暴露在空气中. Inkwells gradually f ...

  • 【老孟Flutter】41个酷炫的 Loading 组件库

    老孟导读:目前 loading 库中包含41个动画组件,还会继续添加,同时也欢迎大家提交自己的 loading 动画组件或者直接微信发给我也可以. Github 地址:https://github.c ...

  • 【老孟Flutter】如何提高Flutter应用程序的性能

    首先 Flutter 是一个非常高性能的框架,因此大多时候不需要开发者做出特殊的处理,只需要避免常见的性能问题即可获得高性能的应用程序. 重建最小化原则 在调用 setState() 方法重建组件时, ...

  • 【老孟Flutter】2020年总结

    2020年是我经历的最不平凡的一年,这一年有遗憾.有收获,有感概,也有庆幸,庆幸自己还活着. 用一句话总结自己的2020,忙并收获着,累并快乐着. <Flutter 实战入门> <F ...

  • 简述Flutter 的热重载

    在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费.开源的.Flutter采用现代响应式框架构建,其中心思想是使用组件来构建应用的UI.当组件的状态发生改变时,组件 ...

  • 【老孟Flutter】源码分析系列之InheritedWidget

    老孟导读:这是2021年源码系列的第一篇文章,其实源码系列的文章不是特别受欢迎,一个原因是原理性的知识非常枯燥,我自己看源码的时候特别有感触,二是想把源码分析讲的通俗易懂非常困难,自己明白 和 让别人 ...

  • 如何利用Flutter实现好友列表(内涵源码)

    早前的<HelloWorld>公开课,资深大前端开发工程师阿佑老师为我们详细介绍了如何利用Flutter做界面开发.学员们反馈意犹未尽,问还没有关于Flutter的公开课.4月24日,阿佑 ...

  • Flutter 2.2发布:针对各平台的性能优化、完善生态支持

    局长 OSC开源社区 昨天 文 | 局长 出品 | OSC开源社区(ID:oschina2013) 谷歌在昨日举办的 Google I/O 2021 大会上宣布了 Flutter 2.2,其开发团队称 ...

  • 基于 Flutter 的 Web 渲染引擎「北海」正式开源

    今天 以下文章来源于淘系前端团队 ,作者淘系-染陌 淘系前端团队前端的世界一直在变化着,在各种熟悉的语言进化中迅速的化学反应.也许你和我们一样,对前端的理解也在不断刷新.欢迎你和我们一起,在淘宝这个丰 ...

  • 【老孟Flutter】为什么 build 方法放在 State 中而不是在 StatefulWidget 中

    老孟导读:此篇文章是生命周期相关文章的番外篇,在查看源码的过程中发现了这一有趣的问题,欢迎大家一起探讨. Flutter 中Stateful 组件的生命周期:http://laomengit.com/ ...

  • Flutter VS RN,谁更适合做跨平台开发?

    跨平台技术解决方案一直是业内热议的话题,无论是当前热门的跨平台技术方案RecatNative还是目前使用依然广泛的webview,又或是Google这两年在大力推广的Flutter,究竟哪种方案更适合 ...

  • 浅谈Flutter入门知识

    Flutter是Google的移动UI框架,可以在iOS和Android上快速构建高质量的本地用户界面.一个代码可以同时生成两个高性能.高保真的iOS和Android应用.Flutter的目标是让开发 ...