首页
学习
活动
专区
圈层
工具
发布

Flutter 入门指北之手势处理和动画

在 Flutter 中,自带手势监听的目前为止好像只有按钮部件和一些 chip 部件,例如 Text 等部件需要实现手势监听,就需要借助带有监听事件的部件来实现了,这节我们会讲下 InkWell 和 GestureDetector...InkWell 在前面的一些例子中,小伙伴应该看到了好几次 InkWell 这个部件,通过它我们可以实现对一些手势的监听,并实现 MD 的水波纹效果,举个简单的一个例子 InkWell( child...InkWell 是在 MaterialDesign 风格下的一个用来响应触摸的矩形区域(注意加粗的文字,1.如果不是 MD 风格的部件下,你是不能用这个来做点击响应的;2.InkWell 是一块矩形区域...,如果你要的是圆形区域,8 好意思,不行!)...InkWell 必须要有一个 Material 风格的部件作为锚点,巴拉巴拉巴拉....再次强调必须要在 MD 风格下使用。

2.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Flutter 专题】易忽略的【小而巧】的技术点汇总 (一)

    和尚在学习 Flutter过程中遇到很多有趣的小知识点,平时可能不太注意或一些简单直接的小功能点,准备整理一个小系列,方便日后的查找使用。 1....InkWell 水波纹效果 和尚在 Android的项目中很多需要水波纹的点击效果,Flutter当然也提供了类似的效果,除了 FlatButton按钮系列外,Flutter还提供了 InkWell...注意事项: 使用 InkWell时内外层均不建议添加背景色,InkWell默认的水波纹颜色很浅,背景色会遮挡波纹效果; 通过修改 splashColor: Colors.greenAccent,属性可以动态修改水波纹的波纹颜色...Wrap 流式布局 和尚需要在每行布局中根据文字内容长度自定义展示个数,单独的用 Row和 Column不能实现很好的效果,这时候发现 Flutter提供的强大的 Wrap流式布局,自动根据需要显示的内容设置宽度...---- 和尚刚接触 Flutter时间不长,还有很多不清楚和不理解的地方,如果又不对的地方还希望多多指出。以下是和尚公众号,欢迎闲来吐槽~

    1.3K31

    Flutter 零基础入门(二十五):手势 GestureDetector 与 InkWell

    Flutter 的一个核心设计理念: 任何 Widget 都可以有交互 GestureDetector 和 InkWell 的作用是: 给任意 Widget 添加点击、滑动等手势能力 二、GestureDetector...✅ 非常灵活 ❌ 没有水波纹 ❌ 用户感知较弱 三、InkWell:带水波纹的点击(重点) 1️⃣ 什么是 InkWell?...InkWell 是 Material 体系的一部分,特点是: 点击时有水波纹效果 2️⃣ 基本用法 InkWell( onTap: () { print('点击了'); }, child...InkWell 是否有反馈 ❌ ✅ 是否依赖 Material ❌ ✅ 灵活度 ⭐⭐⭐⭐⭐ ⭐⭐⭐ 常见场景 自定义交互 列表 / 卡片 经验法则: 列表、卡片 → InkWell 高度自定义 →...下一篇我们将学习: 什么是“状态” StatelessWidget vs StatefulWidget setState 的作用 点击后界面如何更新 从下一篇开始: Flutter 真正的“动态 UI

    19410

    Flutter开发中的一些Tips

    状态栏方面,Android平台默认是半透明的效果,IOS则是透明效果。比如Android要实现IOS的效果,可以设置状态栏为透明。不过IOS要实现Android的效果则不行。。。,难道只能自定义?...比较成熟有效的方案是在键盘弹出的上方悬浮一个按钮,点击可以关闭键盘。当然了,这种问题也有对应的库可以解决,我使用的是flutter_keyboard_actions来解决了这个问题。...---- InkWell有的叫溅墨效果,有的叫水波纹效果。...使用场景是给一些无点击事件的部件添加点击事件时使用(也支持长按、双击等事件),同时你也可以去修改它的颜色和形状。...主要原因是溅墨效果是在一个背景效果,并不是覆盖的前景效果。所以InkWell中的child一旦有设置背景图或背景色,那么就会遮住这个溅墨效果。如果你需要这个溅墨效果,有两种方式实现。

    2.7K30

    Flutter 的按钮,看这篇文章就够了

    我在之前的文章文本、图片和按钮在Flutter中怎么用中,简单介绍过按钮组件,本篇文章来详细聊聊Flutter中的各种按钮组件的各种应用场景。...实际上,RaisedButton是立体效果的,而FlatButton是扁平化的平面效果;OutlineButton是边框按钮,对齐设置背景颜色是不起效果的。...FloatingActionButton有如下属性: child,一般为Icon,不推荐使用文字 tooltip,FAB被长按时显示,也是无障碍功能 backgroundColor,背景颜色 elevation...,未点击的时候的阴影 highligntElevation,点击时候的阴影值,默认是12.0 onPressed,点击事件回调 shape,可以定义FAB的形状等 首先我们先在一个普通页面展示一下FloatingActionButton...4,floatingActionButton的 child 属性,我们一般是给其配置成Icon,不建议给其配置成其他组件。 接下来,我们来聊一聊如何实现闲鱼底部Tabbar上的凸起按钮的效果。

    11K31

    你知道吗,Flutter内置了10多种Button控件

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本:1.12.13+hotfix.5 Dart版本:2.7.0 Flutter内置了10多种Button(按钮)类控件供我们使用...onPressed为null或不设置时,按钮是禁用状态。...默认情况下,下拉选项的图标是倒立的三角,也可以进行自定义,用法如下: DropdownButton( icon: Icon(Icons.add), iconSize: 24, iconDisabledColor...RawMaterialButton RawMaterialButton是基于Semantics, Material和InkWell创建的组件,它不使用当前的系统主题和按钮主题,用于自定义按钮或者合并现有的样式...如果开发的是web程序,我们可以设置鼠标悬停颜色: ToggleButtons( hoverColor: Colors.cyan, ) 欢迎加入Flutter的微信交流群(mqd_zzy

    4K30

    你知道吗,Flutter内置了10多种Button控件

    版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我们使用,了解这些控件有助于提高我们的开发速度...: (){ }, ) 效果: [1240] onPressed为null或不设置时,按钮是禁用状态。...,比如设置为圆形,代码如下: RaisedButton( shape: CircleBorder(), ... ) 效果如下: [1240] 和hover相关的属性是指鼠标悬停时的状态,移动端没有效果...效果如下: [strip] 如果你对选中的选项的样式不满意,可以自定义,用法如下: DropdownButton( selectedItemBuilder: (context){ return..., Material和InkWell创建的组件,它不使用当前的系统主题和按钮主题,用于自定义按钮或者合并现有的样式,而RaisedButton和FlatButton都是基于RawMaterialButton

    3.2K00

    Flutter 小技巧之 Flutter 3 下的 ThemeExtensions 和 Material3

    本篇分享一个简单轻松的内容: ThemeExtensions 和 Material3 ,它们都是 Flutter 3.0 中的重要组成部分,相信后面的小知识你可能还没了解过~。...ThemeExtensions相信大家都用过 Flutter 里的 Theme ,在 Flutter 里可以通过修改全局的 ThemeData 就来实现一些样式上的调整,比如 :全局去除 InkWell...theme: ThemeData( primarySwatch: Colors.blue, // 去掉 InkWell 的点击水波纹效果 splashFactory: NoSplash.splashFactory...Material3Material3 又叫 MaterialYou , 是谷歌在 Android 12 时提出的全新 UI 设计规范,现在 Flutter 3.0 里你可以通过 useMaterial3...更多可见 《HCT 的色彩原理》最后最后我们回顾一下,今天的小技巧有:通过 ThemeExtensions 拓展想要的自定义 ThemeData通过 useMaterial3 启用 Material3

    1.9K30

    Flutter手势交互+自定义绘板组件v0.01

    终于把基本的组件扯完了,真的是多如牛毛。现在让我们来看一下控件如何实现交互 最后会实现一个简单的有点笔触效果的画布,来说明如何使用手势交互。...Widget 2.1:响应事件的盒子 既然GestureDetector的onTap可以传入一个函数作为回调处理,那何妨一试 var box = Container( color: Colors.cyanAccent...InkWell也是一个拥有事件处理能力的组件,只不过支持的事件比较少 常用包括点击,双击,长按,按下,特点是有水波纹效果(注:Container背景色会掩盖水波纹)。...需要的知识点:Flutter中的手势交互,主要是移动相关 1.一条线是点的集合,绘板需要画n条线,所以是点的集合的集合 _lines 2.组件为有状态组件,_lines为状态量,在移动时将点加入当前所画的线...,不过作为手势的交互应用的例子还是不错的 class TolyCanvas extends StatefulWidget{ @override State createState

    1.7K10

    Flutter 组件集录 | 新一代 Button 按钮参上

    按钮一族现状 随着 Flutter 3.3 的发布,RaisedButton 组件从 Flutter 框架中移除,曾为界面开疆拓土的 按钮三兄弟 彻底成为历史。...另外 MaterialButton、RawMaterialButton 也将在未来计划被废弃,所以不建议大家再使用了: ---- 目前,取而代之的是 TextButton 、ElevatedButton...三个按钮组件的默认表现 如下,是 ElevatedButton 的默认表现:有圆角和阴影,在点击时有水波纹。...按钮的事件 这三个按钮在构造时都需要传入 onPressed 参数作为点击回调。...构建的组件也就是按钮的最终表现,其中使用了 ConstrainedBox 组件处理约束;Material 组件处理基本表现内容;InkWell 处理水波纹和相关事件;Padding 用于处理内边距;Align

    3.1K10

    Flutter 构建完整应用手册-处理手势

    虽然我们已经创建了一个自定义按钮来演示这些概念,但Flutter包括一些开箱即用的按钮:RaisedButton,FlatButton和CupertinoButton 完整例子 import 'package...添加材质涟漪效果 在设计应遵循材质设计指南的应用程序时,我们希望在点击时将涟漪动画添加到部件。 Flutter提供InkWell部件来达到这个效果。...路线 创建一个我们想要点击的部件 将其包装在InkWell部件中以管理点击回调和涟漪动画 // The InkWell Wraps our custom flat button Widget new InkWell...Flutter通过提供Dismissible部件使这项任务变得简单。...路线 创建条目列表 将每个项目包裹在Dismissible部件中 提供“向后消除”指标 1.创建条目列表 这个配方的第一步是创建一个我们可以滑动的项目列表。

    2.4K20

    【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )

    ) { /// 布局裁剪组件 , 可以将布局裁剪成圆形 return ClipOval( /// 可用于约束布局大小的组件 /// 这里的居中显示是关键 , 如果不居中显示...), ), ), ); } } 组件形状显示分析 : ① 方形裁剪组件 : ClipOval 组件区域是 红色 矩形所在位置 , 其裁剪区域是蓝色组件位置 , 如果正好有个方形的组件..., 组件是圆形的 , 执行后组件是方形的 , 这就是改变了外层的 ClipOval 组件的大小 , 导致形状改变 ; 二、创建页面 1 的组件 ( Hero 组件 1 ) ---- 页面 1 的 Hero...组件显示的圆形的 , 跳转到页面 2 后 , 相同 tag 的 Hero 组件显示方形 ; 控制 OvalRectWidget 是圆形还是方形 , 主要是控制 OvalRectWidget 组件的宽高...) { /// 布局裁剪组件 , 可以将布局裁剪成圆形 return ClipOval( /// 可用于约束布局大小的组件 /// 这里的居中显示是关键 , 如果不居中显示

    1.9K40

    『Flutter』常用组件 按钮、图片

    它可以包含图标而不是文本,适用于空间有限或需要图形化表示的地方。 5. FloatingActionButton:这是一个圆形的按钮,通常悬浮在内容上方,用于促进应用中的主要动作,如添加、编辑等。...InkWell:虽然不是一个标准的按钮组件,但它可以用来给几乎任何widget添加水波纹效果,从而制作自定义按钮。...默认大小是 24.0。 3. color (Color): 图标的颜色。 4. semanticLabel (String): 用于辅助技术的标签。...中,用于显示图片的主要组件是 Image。...2. width (double): 图片的宽度。如果不设置,图片会根据其父组件和其他内容自动调整大小。 3. height (double): 图片的高度。同样,如果不设置,会自动调整。

    1.2K10

    Flutter 绘制探索 5 | 深入分析重绘范围 RepaintBoundary | 七日打卡

    系列引言 可能说起 Flutter 绘制,大家第一反应就是用 CustomPaint 组件,自定义 CustomPainter 对象来画。...水波纹系列 RawMaterialButton 系列的组件,底层都依赖于 InkWell ,在测试中发现水波纹效果会触发自定义画板的不断重绘。如下: ?...= color; } } 复制代码 ---- 调试一下可以看到,上界如下,不知道是官方少加了 RepaintBoundary 下界,还是另有考虑。...解决方案是在绘制的组件上套一个 RepaintBoundary 。 ? ---- 2.输入框系列 在输入框收起打开时,会触发自定义画板的绘制,而且随着打开次数的增加,绘制越多,感觉像是 bug 。...当然这些只是我遇到的,当你自定义的绘制出现卡顿或频繁重绘时,也要注意一下。 ---- 通过本文,你应该对 Flutter 中的绘制范围有了更深的认识。

    4.8K31

    flutter制作具有自定义导航栏的渐进式 Web 应用程序

    “本文主要介绍具有自定义导航栏的渐进式 Web 应用程序 让我们准备我们的 - “Main.dart” 我们将整个页面分成几个部分,以便于制定,我建议您这样做以获得更好的编程,让我们更详细地查看这些部分...- 并创建一个名为 - “CompanyName.dart”的文件 - 创建一个名为 CompanyName 的无状态小部件,它返回 Row() 小部件内的两个“文本”小部件。...- 创建一个名为 NavBar 的有状态小部件,它将“NavBar”列表作为 Column() 返回。...我们可以假设,这些是按钮,所以我们可以使用 - “InkWell” - 小部件,它具有 Ontap() 函数,它被包裹着 - “材料”小部件,并取消材料小部件的默认颜色我们手动使颜色透明。...这与往常一样带有 4 个文本小部件的行。

    3.1K20
    领券