首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

flutter系列之:widgets,构成flutter基石

状态和无状态,大家听起来是不是很熟悉,我们应用程序中也经常会用到有状态Bean和无状态Bean。他们原理和flutter两类Widget其实是差不多。...StatelessWidget因为是无状态,所以它只会根据初始传入配置信息来构建Widget,因为Widget是不可变,所以StatelessWidget创建出来就不会再变化。...因为这个Widget行为只跟初始状态有关,所以可以将其设置成为StatelessWidget: class MyAppBar extends StatelessWidget { const MyAppBar..._incrementCounter需要调用setState方法用来对State状态进行刷新。...而浮动按钮则使用FloatingActionButton,它onPressed方法会触发我们前面写_incrementCounter方法,用来将_counter加一。

64210

第130期:flutter状态组件和状态管理

当小部件状态发生变化时状态对象调用setState(),告诉框架重新绘制小部件。 创建状态组件 需要注意是: /** 1....当组件状态发生变化时,state对象调用setstate方法,通知框架重新绘制组件。 **/ 创建一个自定义状态组件需要创建两个类: /** 1....**/ 组件管理自己状态 有时候,组件在内部管理自己状态比较好。例如,当ListView内容超过渲染框时,它会自动滚动。..._ParentWidgetState对象: 管理活动状态_active。 实现了_handleTapboxChanged()方法,即在轻敲框时调用方法。...onTapDown和onTapUp调用setState()方法更新UI,并且_higlight状态发生变化。 _handleTap时,将状态传递到付组件中,通知父组件进行更新。

1.5K20

Flutter Widget框架之旅 顶

当小部件状态发生变化时,小部件会重新构建它描述,该描述与前面的描述不同,以确定底层渲染树从一个状态转换到下一个状态所需最小更改。...Flutter中,这两种类型对象具有不同生命周期。 小部件是临时对象,用于构建当前状态应用程序演示文稿。 另一方面,State对象调用build()之间是持久,允许它们记住信息。...上面的例子接受用户输入并直接在其构建方法中使用结果。...如果您在修改窗口小部件内部状态时忘记调用setState,则框架将不知道您窗口小部件是脏,并且可能不会调用窗口小部件build函数,这意味着用户界面可能不会更新以反映已更改状态。...响应小部件生命周期事件 主要文章:State StatefulWidget上调用createState之后,框架将新状态对象插入树中,然后状态对象上调用initState。

6.7K20

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

之前文章文本、图片和按钮Flutter中怎么用中,简单介绍过按钮组件,本篇文章来详细聊聊Flutter中各种按钮组件各种应用场景。...Flutter中,有很多按钮组件,常见有:FlatButton、RaisedButton、OutlineButton、IconButton、ButtonBar、FloatingActionButton...首先来看一下按钮组件属性: onPressed,必填参数,按下按钮时触发回调,接收一个方法,传null值表示按钮禁用,会显示禁用相关样式 child,表示按钮展示状态Widget,一般为一个文本组件..."), onPressed: null,//通过将onPressed设置为null来实现按钮禁用状态 color: Colors.pink,...6,点击悬浮按钮时候,我们可以通过调整 _tabbarIndex 值来切换页面。

9.3K31

为Flutter应用程序添加交互性 顶

当小部件状态改变时,状态对象调用setState(),告诉框架重绘小部件。 本节中,您将创建一个自定义有状态小部件。...状态对象还定义了build方法。 此build方法创建一个包含红色IconButton和Text行。...该小部件使用IconButton(而不是Icon),因为它有一个onPressed属性,该属性定义了处理水龙头回调方法IconButton也有一个保存图标的Icon属性。..._toggleFavorite()方法在按下IconButton调用,它调用setState()。 调用setState()是至关重要,因为这会告诉框架小部件状态已经改变,并且小部件应该重绘。...中并设置其宽度可防止文本40和41之间变化时出现明显“跳跃” - 否则会发生这种情况,因为这些值具有不同宽度。

4.2K20

【Flutter 专题】61 图解基本 Button 按钮小结 (一)

Button 日常中是必不可少,和尚尝试过不同类型 Button,也根据需求自定义过,今天和尚系统学习一下最基本 Button; Flutter 中没有 Button Widget,但提供了很多不同类型...和尚首先尝试最基本 IconButton;长按会由 tooltip 提醒,点击为默认主题色; IconButton(icon: Icon(Icons.android), tooltip: 'IconButton...设置 green;同样若 icon 本身设置了颜色,disabledColor 不生效;注意:onPressed: null 与 onPressed: ()=> null 不同,前者代表无点击事件;...,可根据 padding 或外层依赖 Container 适当调整位置和大小;默认最小尺寸为 88px * 36px; 案例尝试 和尚定义了一个基本按钮,并监听其高亮改变时状态,与我们常见按钮基本一致...FloatingActionButton FloatingActionButton 是 RawMaterialButton 封装,主要用于浮动屏幕内容之上,一般是位于底部左右角或中间;一般一个页面只有一个

1.4K21

flutter系列之:做一个会飞菜单

{ late AnimationController _drawerSlideController;然后initState中对_drawerSlideController进行初始化: void...我们定义一个_toggleDrawer方法点击菜单按钮时候来触发这个方法,从而实现_drawerSlideControllervalue变化: void _toggleDrawer() {...drawerSlideController.reverse(); } else { _drawerSlideController.forward(); } }同时,我们定义下面几个判断菜单状态方法...,菜单状态又是依赖于_drawerSlideController,所以,我们把IconButton放到一个AnimatedBuilder里面,从而实现动态变化效果: PreferredSizeWidget...其中最终要一个变化值是animationPercent,这个值是根据_itemControllervalue和初始设置各个item化时间来决定

26511

Flutter 组件集录 | 从图标按钮看组件封装

build 方法中封装构建逻辑,其中使用 Icon 组件,根据不同平台,展示不同图标,如下所示: 图片 ---->[BackButtonIcon 源码]---- class BackButtonIcon...BackButton 组件 BackButton 组件继承自 StatelessWidget , build 构建逻辑中使用 IconButton 组件触发点击事件,如果未提供 onPressed 参数...通过 源码可以知道,本质上这个颜色属性是传入到 IconButton 组件构造方法。...IconButton 组件 IconButton 是一个具有圆形水波纹点击效果组件,必须传入一个子组件 icon 和回调函数 onPressed 。...---- 最后说一下 useMaterial3 处理, IconButton#build 方法中,通过 Theme 数据 useMaterial3 属性校验是否启用 Material3 : 通过启用

1.1K10

你知道吗,Flutter内置了10多种show

applicationLegalese:著作权(copyright)提示。 children:位置如上图红蓝绿色位置。 所有的属性都需要手动设置,不是自动获取。...下面的2个按钮根据应用程序支持语言显示相应语言,比如显示中文方法如下: pubspec.yaml中配置支持国际化: dependencies: flutter: sdk: flutter...,调用showBottomSheet抛出异常。...弹出位置屏幕左上角,我们希望弹出位置点击按钮位置,因此需要计算按钮位置,计算如下: final RenderBox button = context.findRenderObject();...buildSuggestions是用户正在输入时显示控件,输入框放生变化时回调此方法,通常返回一个ListView,点击其中一项时,将当前项内容填充到输入框,用法如下: @override Widget

1.7K10

flutter系列之:做一个会飞菜单

{ late AnimationController _drawerSlideController; 然后initState中对_drawerSlideController进行初始化: void...我们定义一个_toggleDrawer方法点击菜单按钮时候来触发这个方法,从而实现_drawerSlideControllervalue变化: void _toggleDrawer() {...drawerSlideController.reverse(); } else { _drawerSlideController.forward(); } } 同时,我们定义下面几个判断菜单状态方法...,菜单状态又是依赖于_drawerSlideController,所以,我们把IconButton放到一个AnimatedBuilder里面,从而实现动态变化效果: PreferredSizeWidget...其中最终要一个变化值是animationPercent,这个值是根据_itemControllervalue和初始设置各个item化时间来决定

18630
领券