Flutter 各种widget 简要说明

Flutter - 基础Widget,android简单小项目实例 child: Row( mainAxisSize: MainAxisSize.min, // 默认是max,占满父Widget;min是包裹内容 children: [ Icon(Icons.favorite, color: Colors.red), // 图标 Text(“喜欢作者”), // 文字 ], ), onPressed: () => print(“自定义Button”), // onPressed必传,否则样式可能会出问题 ) ], ); } } 2、定制 Button 默认间隔 : 阅读详情

Flutter widget 简要说明:

Text

该 widget 可让创建一个带格式的文本

交互性

要使文本对触摸事件作出反应,将其包装在GestureDetector中,使用GestureDetector.onTap处理程序。

在一个material design应用中,考虑使用一个FlatButton,或者如果不合适,至少使用一个knkWell来代替GestureDetector。

要使文本的一段具有交互性,可以使用RichText并指定一个TapGestureRecognizer作为文本的相关部分的TextSpan.recognizer 。

Row/ Column

这些具有弹性空间的布局类Widget可让您在水平(Row)和垂直(Column)方向上创建灵活的布局。其设计是基于web开发中的Flexbox布局模型。

Stack

取代线性布局 (译者语:和Android中的LinearLayout相似),Stack允许子 widget 堆叠, 你可以使用 Positioned 来定位他们相对于Stack的上下左右四条边的位置。Stacks是基于Web开发中的绝度定位(absolute positioning )布局模型设计的。

Container

Container 可让您创建矩形视觉元素。container 可以装饰为一个BoxDecoration, 如 background、一个边框、或者一个阴影。 Container 也可以具有边距(margins)、填充(padding)和应用于其大小的约束(constraints)。另外, Container可以使用矩阵在三维空间中对其进行变换

Icon
交互性

图标不是交互式的。对于交互式图标,可以考虑material的IconButton。

当使用图标时,必须有一个环境定向小部件。通常这是由WidgetsApp或MaterialApp自动引入的。

这个小部件假设呈现的图标是正方形的。非正方形图标可能呈现不正确

RaisedButton

使用raised button增加平面布局的尺寸,例如在很长的繁忙的内容列表中,或者在很宽的空间中。避免在已经引发的内容(如对话框或卡片)上使用raised button。

如果onPressed和onLongPress回调是空的,那么按钮将被禁用,默认情况下,将类似于一个平面按钮在disabledColor。如果您试图改变按钮的颜色,但没有任何效果,请检查是否传递了一个非空的onPressed或onLongPress回调。

如果你想要一个 ink-splash的水龙头,但不想使用一个按钮,考虑使用 InkWell

Raised buttons的最小尺寸为88.0 * 36.0,可以用ButtonTheme覆盖

FlatButton,

平面按钮,一个material design没有阴影的按钮

DropdownButton

下拉按钮,一个按钮,显示可供选择的选项

FloatingActionButton

浮动动作按钮,round button in material applications.

IconButton

创建只包含图标的按钮

InkWell

喷墨,它实现了喷墨部分的一个平面按钮

RawMaterialButton

RawMaterialButton,这个小部件所基于的小部件。

Scaffold

支架类

实现了基本material design的可视化布局结构

该类提供用于显示drawers, appbar,snack bars, and bottom sheets的api

要显示snackbar或持久的底部工作表,请通过Scaffold.of 获取当前BuildContext的ScaffoldState

和使用 ScaffoldState.showSnackBar 和ScaffoldState.showBottomSheet

MaterialApp

一个方便的小部件,它包装了许多material design应用程序通常需要的小部件。它建立在一个WidgetsApp的基础上,通过添加特定的material design功能,比如AnimatedTheme和GridPaper。

MaterialApp按照以下顺序配置顶级导航器来搜索路线:

  1. 对于/ route,如果非空,则使用home属性。

  2. 否则,如果route表有一个条目,则使用route表。

  3. 否则,如果提供,将调用onGenerateRoute。对于未由home和route处理的任何有效路由,它应该返回一个非空值。

  4. 最后,如果所有其他方法都失败,则调用onUnknownRoute

    如果创建了导航器,这些选项中至少有一个必须处理/ route,因为它是在启动时,指定无效的initialRoute时使用的(例如,在Android上启动另一个应用程序;见Window.defaultRouteName)。

    这个小部件还配置顶级导航器的观察者(如果有的话)来执行Hero动画。

    如果home、route、onGenerateRoute和onUnknownRoute都为空,且builder不为空,则不创建任何导航器。

WidgetsApp

它定义了基本的应用程序元素,但不依赖于material库。

MaterialPageRoute,

它定义了一个app页面,该页面以material-specific的方式进行转换

Navigator

​ 用于管理应用程序的页面堆栈

Placeholder

一个小部件,它绘制一个方框,表示将来会添加其他小部件的位置。

这个小部件在开发期间非常有用,可以指示接口尚未完成。

默认情况下,占位符的大小适合其容器。

​ 用于管理应用程序的页面堆栈

Placeholder

一个小部件,它绘制一个方框,表示将来会添加其他小部件的位置。

这个小部件在开发期间非常有用,可以指示接口尚未完成。

默认情况下,占位符的大小适合其容器。

如果占位符位于无界空间中,它将根据给定的fallbackWidth和fallbackHeight.调整自身的大小。

TabController

协调[TabBar]和[TabBarView]之间的选项卡选择

Flutter迎来了全新的可视化页面编辑器——Androidui! 在上面的示例中,我们使用Androidui的可视化编辑器创建了一个登录界面。Androidui提供了一个直观的界面编辑器,其中包含了丰富的UI组件,如按钮、文本框、图片等,以及各种布局选项。但是,随着Androidui的推出,开发者现在可以使用更直观和可视化的方式来构建Flutter应用的用户界面。通过使用Androidui的可视化编辑器,我们可以轻松地拖拽UI组件,调整其大小和位置,并实时预览效果。这样,开发者可以更加直观地设计和构建Flutter应用的用户界面,提高开发效率。 阅读详情

相关推荐

Nowa Flutter开发教程之 07 Nowa 可视化编程

Nowa 可视化编程 (NVP) 是一种无需编写代码即可直观地为您的应用程序实现功能的方法。要打开 NVP 板,请单击屏幕左下方的 NVP 图标,如下所示。让我们看看它是如何工作的,并尝试一个在单击按钮时在 LOG 上打印消息的小示例。...

iCloudEnd的博客 1041

Flutter 的可视化界面、绘制性能调优 —— DevTools

关注前端瓶子君,回复“交流”加入我们一起学习,天天进步授权转载自:多肉葡萄五分糖https://juejin.cn/post/6897101906158714887前言给大家介绍De...

我本可以容忍阳光,如果我不曾见过太阳,然而阳光已使我荒凉,成为更新的荒凉。 9874

BitWidget,自定义bit控件

由于QBitArray并不满足我做界面是的需求,所以参照QBitArray简单的写了个控件,如下所示,源码及实例在我上传的资源包中。

qq_42815643的博客 349

flutter可视化_我们用 Flutter 写了一套全新的 Flutter 开发者工具

作者 / Filip Hracek & Chris Sells新版 Dart DevTools 已经发布,这是一套用于 Dart 和 Flutter 代码调试和性能分析的工具,完全用 Flutter 重新构建。新版本较之前有若干改进,例如,对性能和内存视图做了更新,并且新增了一个全新的网络视图。很多人都是由热重载功能了解到 Flutter,该功能允许您对正在运行的移动应用做出修改...

weixin_39898011的博客 3626

【CANoe16安装教程】亲测安装成功

CANoe16安装教程

qq_45302638的博客 2万+

从Google到LLVM:5种主流clang-format预设风格横向对比(含代码对比图)

本文横向对比了LLVM、Google、Chromium、Mozilla和WebKit五种主流的clang-format预设代码风格。通过同一段C++代码的格式化效果对比图,直观展示了它们在指针对齐、大括号换行、缩进等关键细节上的差异,并提供了基于团队背景与项目基因的选型决策指南。

weixin_28828243的博客 442

【Flutter】【widget】showSearch 搜索widget 功能说明和使用

显示搜索功能页面,点击就跳转到该搜索页面的功能,快速完成搜索功能【Flutter】【弹窗】弹窗的快速上手使用和自定义Dialog【Flutter】【widget】底部弹出框bottomSheet等widget 的使用和说明【Flutter】【widget】其他弹窗showMenu,PopupMenuButton ,showAboutDialog 等(3)欢迎关注,留言,咨询,交流!

自动人生博客 1395

MTK眼中6G物理层与无线协议的进化之路

提议统一波束和小区级的测量、报告和切换框架/流程,进一步减少移动性切换过程中的中断,采用可扩展框架/流程,允许在不同移动性场景中进行部分用户设备配置更新以实现快速切换,支持用户设备发起的移动性(同步/切换)以降低延迟和因信令交换导致的失败,设计移动性RS以实现空闲状态下的节能和连接状态下的无缝用户体验,实现5G/6G间的无缝互操作移动性,为固定无线接入(FWA)提供潜在增强,构建统一的跨层移动性框架以降低复杂度、减少中断和失败。为适应多样化的流量类型,需要灵活的帧结构和高层时间对齐。

asd199086的博客 1745

Flutter 中 Widget 的生命周期说明

Widget的生命周期 在Flutter中,我们常用的widget有两种: StatelessWidget,用于不需要维护状态的场景,它通常在build方法中通过嵌套其它Widget来构建UI,在构建过程中会递归的构建其嵌套的Widget。 StatefulWidget,用于需要随着触发事件改变UI的场景。 注意:这里所有的生命周期方法仅仅针对widget层以及以上,讨论render层级的方法。 StatelessWidget的生命周期 StatefulWidget的生命周期 和StatelessWi

qq_32086641的博客 534

手机摄影新宠:In-line Hardware EIS如何让你的4K视频稳如鸡头(附实测对比)

本文深入解析了手机摄影中的In-line Hardware EIS(硬件级行内电子图像稳定)技术。通过对比传统软件EIS,阐述了其通过硬件管道实时处理实现极低延迟、减少画面裁切和有效抑制果冻效应的核心优势,并结合4K视频的日夜间实测,展示了该技术如何让手持拍摄的视频“稳如鸡头”,显著提升创作体验与成片质量。

tree的博客 994

SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码)

本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。

weixin_29074295的博客 293

【Flutter】【widget】底部弹出框bottomSheet等widget 的使用和说明

从底部弹出的提示框,或者是选择,显示框的功能。合理的设计和运用弹出来确认相关的选择//弹出时长 _animationController . reverseDuration = const Duration(milliseconds : 500);//收回的时长 // _animation = Tween(begin: 0.0, end: 300.0).animate(_animationController);

自动人生博客 3144

编程语言的未来走向:趋势、挑战与机遇

同时,鼓励他们接触和掌握一些专业领域的开发工具和技术框架,比如Web开发中的JavaScript、React.js,数据分析的Python(Pandas, NumPy, Matplotlib等),以及人工智能和机器学习领域的TensorFlow、PyTorch等。当前,全球范围内正积极推动编程教育的普及化,从儿童启蒙阶段到高等教育阶段,乃至终身学习的过程中,如何优化编程语言的教学方法、提高教学质量,并将其广泛应用于不同领域,是教育者与政策制定者面临的重大课题。未来,编程语言的多样化和包容性将会继续加强。

zrc_xiaoguo的博客 1828

Flutter学习四:Flutter开发基础(一)Widget

无状态的组件,用于不需要维护状态的场景继承自widget类,重写了方法通常在build方法中通过嵌套其他 widget 来构建UI@overrideKey?key,@override),一个 StatefulWidget 类会对应一个 State 类在 widget 构建时可以被同步读取。在 widget 生命周期中可以被改变,当State被改变时,可以手动调用其setState()方法通知Flutter框架状态发生改变。

2501_91510632的博客 1180

STM8开发环境搭建(STVD + COSMIC)

一、STM8开发IDE 1. STVD + COSMIC ST Visual Develop (STVD)只支持汇编开发,C语言开发需要再安装COSMIC,配套起来使用。 2. IAR IAR也可以用来开发STM8 下面介绍STVD + COSMIC的搭建方式 二、环境搭建 1. STVD下载、安装 直接从官网下载:https://www.st.com/en/development-tools/stvd-stm8.html 安装很简单,基本下一步往下点。 2. COSMIC下载、安装 对于stm8可以使用3

a183635870的博客 1万+

华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体

2503_91057718的博客 46

VSCode Flutter 快捷键

VSCode Flutter 快捷键

csdnzhaoxiaosheng的博客 836

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Flutter】基础入门:Widgets

在 Flutter 中,**Widget** 是应用程序构建块的基础。几乎所有的对象都是一个 Widget,不论是显示在屏幕上的 UI 元素,还是一些功能性组件(例如用于手势检测的 `GestureDetector`,或用于传递应用主题数据的 `Theme`),它们都是 Widget。与原生开发中“控件”仅指 UI 元素不同,Flutter 的 Widget 概念更加广泛,它涵盖了界面显示、布局、手势检测、状态管理等多个层面。本文将深入讲解 Flutter 中的 Widget,帮助你从概念到实践掌握它们。

2303_80346267的博客 1624

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Flutter完整开发实战详解(六、 深入Widget原理)

理论上你也可以认为 RenderObject 是最终给 Flutter 的渲染数据,它保存了大小和位置等信息,Flutter 通过它去绘制出画面。说到。

2501_90392201的博客 1884

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Flutter之裁剪Image Widget

在前面的文章中,我们介绍了Dart的两种编译时,以及Hot reload模式。今天我们来看下在Flutter中创建不规则Widget的方式。Android原生中,我们在创建不规则边界View时,是通过clipPath的方式来实现,在Flutter中也有相关的概念,下面我们来学习下Flutter中的ClipPath相关概念及用法。ClipPath Widget前面我们说过在Flutter中Every...

weixin_34417200的博客 270

Flutter (三) Widget基础 ( 一 )

Widget Flutter中几乎所有的对象都是一个Widget,与原生开发中“控件”不同的是,Flutter中的widget的概念更广泛,它不仅可以表示UI元素,也可以表示一些功能性的组件如:用于手势检测的 GestureDetector widget、用于应用主题数据传递的Theme等等。而原生开发中的控件通常只是指UI元素。 lib/main.dart 文件入口 启动项目 flutter ...

没有翅膀的我们,只是随便认为不能飞而已 2360

Flutter 进阶学习(一)Widget - State - Context - InheritedWidget 之间的关系

#Widget - State - Context - InheritedWidget 之间的关系(译文) 原文来自-https://user-gold-cdn.xitu.io/2018/12/8/1678bb83bcdb5f6d (侵删) 本文介绍了Flutter应用程序中Widget,State,Context和InheritedWidget的重要概念。特别注意InheritedWidget,...

Cython的博客 922

Flutter InteractiveViewer 支持平移和缩放子Widget

在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。 优美的音乐节奏带你浏览这个效果的编码过程 坚持每一天,是每个有理想青年的追求 追寻年轻人的脚步,也许你的答案就在这里 如果你迷茫 不妨来瞅瞅这里 1 InteractiveViewer 是什么 ? InteractiveViewer 是Flutter 中一个可以将子Widget进.

代码小疯子 3716

Flutter InputChip 用来实现可点击的标签效果

InputChip 是Material Design的一个 Widget,用来实现标签效果,InputChip 实现的标签可以实现点击事件以及是否选中的效果

代码小疯子 1017

Flutter开发指南

任何时候需要变化,flutter 都会创建一个新的实例。对比来看,Android的 view 就只绘制一次,除非主动调用 invalidate。a.在android 中,view 是屏幕显示的基础,比如 button,文本,列表,输入框都是 view。2.flutter 的 widget 很轻量,原因是:widget 不是视图,也不直接绘制内容,它只是一个对UI和底层创建真正视图对象的语义描述而已。不同:1.widget 和 view 的生命周期是不同的,widget 是不可变的。

冯旭的博客 598
上一篇: Flutter 引入image_pick 问题,Could not resolve com.android.tools.build:gradle:3.3.0
下一篇: CmakeLists文件说明
K_Hello
博客等级 码龄12年 33粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值