height: 10), TextField( decoration: InputDecoration( hintText: "请输入搜索的内容...TextField( maxLines: 4, decoration: InputDecoration( hintText: "多行文本框...* 轮播图 库地址https://pub.dev/packages/flutter_swiper import 'package:flutter/material.dart'; import 'package...alertDialog() async { var result = await showDialog( barrierDismissible: false, //表示点击灰色背景的时候是否消失弹出框...Flutter学习就暂告一段落,Flutter中文网https://flutterchina.club/的文档很齐全,Flutter实战电子书https://book.flutterchina.club
List 对输入文本的校验 cursorWidth double 光标的宽度 cursorRadius Radius 光标的圆角 cursorColor Color...光标的颜色 keyboardAppearance Brightness 键盘的外观,仅在iOS设备上支持 onTap GestureTapCallback 点击输入框时的回调 enabled bool...bool 输入框是否为密集型,默认为false,为true时,图标及间距会变小 contentPadding EdgeInsetsGeometry 内间距 isCollapsed bool 是否装饰的大小与输入字段的大小相同...animationDuration Duration 设置按钮形状和阴影变化的持续时间 materialTapTargetSize MaterialTapTargetSize 配置点击目标的最小大小...materialTapTargetSize MaterialTapTargetSize 配置点击目标的最小大小 focusNode FocusNode 用于焦点管理和监听 autofocus bool
floatingActionButton 字段 ; onPressed 字段设置点击事件 , child 设置显示组件 ; Scaffold( // 设置悬浮按钮 floatingActionButton...onTap: (index){ // 回调 StatefulWidget 组件的 setState 设置状态的方法 , 修改当前选中索引 // 之后 BottomNavigationBar...= null), super(key: key); } 其 onFresh 字段的类型是 RefreshCallback 类型的 , /// A function that's called...onTap: (index){ // 回调 StatefulWidget 组件的 setState 设置状态的方法 , 修改当前选中索引 // 之后 BottomNavigationBar...中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/ Flutter 相关问题 : https
Flutter提供了丰富的按钮组件可以让我们快速的构建UI界面。 常见的按钮组件如下: 1. RaisedButton 凸起的按钮; 2. FlatButton 扁平化的按钮; 3....FloatingActionButton 浮动按钮; 按钮组件常见的属性: 1. onPressed 按下按钮时触发的回调方法,为必填参数,如果值为 null 表示禁用按钮,会显示禁用相关样式; 2.... child 子组件; 3. textColor 文本颜色; 4. color 按钮的颜色; 5. disabledColor 按钮禁用时的颜色; 6. disabledTextColor 按钮禁用时的文本颜色...:this.pressed ) ); } } 效果图如下: 用浮动按钮实现类似闲鱼APP的底部导航条效果,以下是代码示例: import "package..._currentIndex, // 点击事件,获取当前点击的标签下标 onTap: (int index){
4.1.3 MaterialApp MaterialApp是Flutter开发的符合Material设计理念的Widget,可以将它类比为网页开发中的标签,它提供了路由、主题色和标题等功能。...RaisedButton、FlatButton和OutlineButton等Material按钮组件都有一个图标构造函数,可以使用它来创建带图标的按钮。...Image组件常见属性: fit属性用于指定图片的填充模式,取值如下: BoxFit.fill:全图显示,图片有可能被拉伸,造成图片变形; BoxFit.contain:全图显示,图片不会变形,超出显示空间的部分会被剪裁...Colors.green ) ) ) ); } } 示例效果: 4.3.5 输入框组件 常见属性: controller:输入框控制器,通过它可以获取和设置输入框的内容以及监听文本内容的改变...focusNode:用于控制TextField组件是否获取输入焦点,它是用户和键盘交互的一种常见方式。 decoration:用于控制TextField组件的外观显示,如提示文本、背景颜色和边框。
Flutter提供了丰富的按钮组件可以让我们快速的构建UI界面。 常见的按钮组件如下: 1. RaisedButton :凸起的按钮; 2. FlatButton :扁平化的按钮; 3....值的类型为Widget; 3. textColor 文本颜色。值的类型为Colors; 4. color 按钮的颜色。值的类型为Colors; 5. disabledColor 按钮禁用时的颜色。...值的类型为Colors; 6. disabledTextColor 按钮禁用时的文本颜色。值的类型为Colors; 7. splashColor 点击按钮时水波纹的颜色。...用浮动按钮实现类似闲鱼APP的底部导航条效果,以下是代码示例: import "package:flutter/material.dart"; // 标签切换页 class Tabs extends..._currentIndex, // 点击事件,获取当前点击的标签下标 onTap: (int index){
在Flutter中,各种提示框、弹出框是如何实现的呢?今天我们就来聊一聊这个问题。 首先咱们来聊聊Flutter系统内置的Dialog。...Flutter系统内置的Dialog 关于Flutter系统内置的Dialog,我们可以从两个层面去讨论,一个是showDialog层面,一个是showModalBottomSheet层面。...: Colors.yellow,//提示框上的文本颜色 fontSize: 18,//提示框上的文本字体大小 ); } 效果如下: ?...如何自定义Dialog 上面我们讲了Flutter的内置提示框,还介绍了一款flutter第三方提示组件fluttertoast,通常情况下,这些就满足我们日常开发需求了。...和SimpleDialog,都是在showDialog中的builder函数中返回的,我们自定义的Dialog也是在这个函数中返回。
* 自定义TabController(上面的是默认TabController) 自定义的好处是可以在addListener中增加监听,通过setState修改状态 import 'package:flutter..._currentIndex, onTap: (int index) { setState(() { this....: this.pressed, ), ); } } 效果图 ?..._currentIndex, //配置对应的索引值选中 onTap: (int index) { setState(() { //改变状态...欢迎关注我的微信公众号:安卓圈
一个可在Flutter应用中创建可折叠的侧边栏导航抽屉的 Flutter 插件。...原文链接:https://medium.com/flutterdevs/foldable-sidebar-in-flutter-7addcfb8304f 移动应用程序具有多种方法来处理屏幕之间的导航,例如导航抽屉...利用Material Design的移动应用程序有两个必不可少的导航选择。这些导航是“选项卡和抽屉”。抽屉是选项卡的一种可选选择,因为有时移动应用程序没有足够的空间来帮助选项卡。 抽屉是不可见的侧屏。...在内部,我们将添加按钮的backgroundColor。我们将添加一个菜单图标和onPressed()方法。在此方法中,我们将定义setState()。...在内部,我们将添加图像,文本和ListTile。我们将添加三个带有图标和文本的ListTile。
复用性:在不同的项目和页面中复用相同的按钮组件,减少代码重复。Flutter中的按钮基础在Flutter中,按钮通常通过继承Button类或使用GestureDetector组件来实现。...,我们定义了CustomButton组件,它接受onPressed(点击事件)、label(按钮文本)、color(按钮颜色)、textColor(文本颜色)和borderRadius(圆角)作为参数。...这允许我们根据不同的场景和主题来调整按钮的颜色。点击事件处理在CustomButton中,点击事件通过GestureDetector的onTap属性来处理。...在Flutter中,我们可以使用flutter test命令来编写和运行测试。对于按钮,我们可以测试其点击事件是否触发了正确的回调函数。...总结通过封装自定义按钮组件,我们可以更灵活地控制按钮的样式和行为,从而提升应用的用户体验。在Flutter中,这涉及到自定义组件的创建、样式的设置、事件的处理以及测试。
在此示例中,widget树由两个widget:Center(及其子widget)和Text组成。框架强制根widget覆盖整个屏幕,这意味着文本“Hello, world”会居中显示在屏幕上。...文本显示的方向需要在Text实例中指定,当使用MaterialApp时,文本的方向将自动设定,稍后将进行演示。...基础 Widget 主要文章: widget概述-布局模型 Flutter有一套丰富、强大的基础widget,其中以下是很常用的: Text:该 widget 可让创建一个带格式的文本。...Navigator可以让您的应用程序在页面之间的平滑的过渡。 是否使用MaterialApp完全是可选的,但是使用它是一个很好的做法。...在Flutter中,这两种类型的对象具有不同的生命周期: Widget是临时对象,用于构建当前状态下的应用程序,而State对象在多次调用build()之间保持不变,允许它们记住信息(状态)。
appBar: , // 设置页面主体元素组件 body: , // 创建浮动按钮 FloatingActionButton 组件 , 并设置给 floatingActionButton 字段...onPressed 属性值 , 设置一个 VoidCallback?...类型的值 , FloatingActionButton( // 浮动按钮点击事件 onPressed: () { } ) VoidCallback 就是参数和返回值都是空的函数 ; onPressed...://dart.cn/ Dart 开发者官网 : https://api.dart.dev/ Flutter 中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club...: GitHub 地址 : https://github.com/han1202012/flutter_photo ( 随博客进度一直更新 , 有可能没有本博客的源码 ) 博客源码快照 : https
今天,我们将使用 Flutter 构建一个动态的 todo list 的应用。 开发完成的效果如下: 我们直接进入正题。...所有的挂件都会调用一个状态去知道将要发生什么和渲染什么。在这个例子中,我们调用了 _TodoListState。这将包含应用中的列表及其运行逻辑。...我们告诉 flutter 一个 todo 项应该包含什么,什么字段是必须的。在我们的案例中,我们有名字和 checked 两个状态属性。...然后我们使用 ListTile 挂件来展示内容和添加点击事件。 展示 Dialog 去添加列表项 点击应用的右下角的按钮,将会调起 _displayDialog 方法。...这将调起一个带有文本框的对话框。当点击确认的时候,将以文本框的内容基础添加一个新的列表项。 在 _TodoListState 中创建 _displayDialog。
onPressed的根源在哪里,并简单画个图示意一下。...对象,从名称来看是一个空回调 //略... }): super( key: key, onPressed: onPressed,//调用父类的onPressed...child: InkWell( onTap: widget.onPressed, } ---->[flutter/lib/src/material/ink_well.dart:813...在使用上和前面的拖动时间基本一致,这里就不再赘述。...: () { print("OnTap in InkWell"); }, ); 3.手绘板 v0.01 3.0:前置准备 需要的知识点:Flutter中的手势交互,主要是移动相关 1.
Flutter BottomNavigation 底部导航详解 主要是使用了 Scaffold下的 bottomNavigationBar 整个属性,在这个属性下,可以添加底部图标的背景色,选中颜色,...以及是否粘贴到底部,和导航的个数 在app的主页面,home指向底部导航栏的组件 home: BottomNavigation(), 底部导航栏的组件集成 StatefulWidget 在内部创建一个带有状态的组件...StatefulWidget { @override _BottomNavigationState createState() => _BottomNavigationState(); } 状态组件内有一些颜色的变量和选中导航索引的变量...如颜色, 按钮,图标 Colors.white // 白色颜色 Icons.home // home 图标 FloatingActionButton // 漂浮的按钮 效果图 在colors.dart...效果图
一、老套路,先看样式 左图是我业务中的样式,右图是下方源码展示样式(复制可直接运行,无额外组件引入) 二、讲解 1.涉及组件 首先,没有一个单一组件来实现这个效果 实现这个效果涉及以下组件: AppBar...:顶端栏,一个最基本的软件 Text:文本 Container:布局组件 CustomScrollView:自定义滚动效果组件,比如列表和网格组件都可以包含在其中 SliverGrid:网格视图组件 SliverList...,判断当前内容是否满足18条(一屏展示的数目) 如果不满足,说明最后一页了,重置页码为1 如果满足,说明当前数据>=18,后面可能还有数据,页码+1 然后请求数据,_getData()是封装的一个请求数据函数...SliverList( delegate: SliverChildListDelegate([ ListTile( onTap:...), ]), ), 4.网格内容其实就是一个SliverGrid,切换数据后,进行了部分页面重新渲染 三、源码(可直接运行调试) import 'package:flutter
routes 字段注册路由 , 路由信息存储在 Map 集合中 , 键是路由名称 , 值是页面 Widget 组件 ; 代码示例 : class MyApp...“LayoutPage” 路由名称对应的页面 ; RaisedButton( onPressed: (){ Navigator.pushNamed(context, "LayoutPage...title: Text('布局组件示例'), // 回退按钮, 点击该按钮退出该界面 leading: GestureDetector( onTap...title: Text('布局组件示例'), // 回退按钮, 点击该按钮退出该界面 leading: GestureDetector( onTap...中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/ Flutter 相关问题 : https
在这个例子中,我们将创建一个包含两部分数据的类:title和description。...为了达到这个目的,我们将为我们的ListTile部件编写一个onTap回调函数。 在我们的onTap回调中,我们将再次使用Navigator.push方法。...跨屏幕设置动画部件 在屏幕之间导航时,指导用户浏览我们的应用通常很有帮助。 通过应用引导用户的常用技术是将部件从一个屏幕动画到下一个屏幕。 这会创建一个连接两个屏幕的视觉锚点。...现在,我们将创建视觉结构,并在接下来的步骤中处理动画! 注意:本示例建立在导航到新屏幕并返回和处理点击食谱上。...它必须使用与第一个屏幕相同的tag。 将Hero部件应用到第二个屏幕后,屏幕之间的动画将起作用!
controller, contextMenuBuilder: _buildContextMenu, ), ); } 在构建逻辑中,通过 isValidEmail 校验选中的文本是否包含邮箱...也就是说,这个几个工具是 Flutter 源码中默认提供的,可以简单瞄一下其中的逻辑。...中添加对应类型的菜单项: ---- 另外,从源码中还能学到一些小东西的处理逻辑,比如如何复制粘贴,如何剪切和全选内容。...Flutter 中提供了 ContextMenuController 控制器来管理,下面先通过图片的浮层菜单来认识一下控制器的使用: 首先,浮层的显示/消失是手势事件触发的,对于桌面端来说 GestureDetector...的 onSecondaryTapUp 可以监听鼠标的点击事件。
Flutter提供了多种对话框组件供开发者使用,以下代码中演示了常见对话框的实现,供大家参考,欢迎大家复制粘贴和吐槽。...import 'package:flutter/material.dart'; // pubspec.yaml 中配置 fluttertoast: ^8.0.7 import 'package:fluttertoast...{ return MaterialApp( home: Scaffold( // 导航条 appBar: AppBar(title: Text('Flutter...Divider(), ListTile( title: Text("分享 B"), onTap...Divider(), ListTile( title: Text("分享 C"), onTap
领取专属 10元无门槛券
手把手带您无忧上云