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

Flutter 小技巧之优化你使用的 BuildContext

如下代码所示,在这个例子里: 我们添加了一个列表,使用 builder 构建 Item 每个列表都有一个点击事件 点击列表时我们模拟网络请求,假设网络也不是很好,所以延迟个 5 秒 之后我们滑动列表让点击的...();       },        itemCount: 30,     ),   ); } } class ListItem extends StatefulWidget {  const ListItem...title: Container(        height: 160,        color: Colors.amber,     ),      onTap: () async {        ... ListTile(      title: Container(        height: 160,        color: Colors.amber,     ),      onTap:...当然不行,首先如果在 initState 直接调用如 ScaffoldMessenger.of(context).showSnackBar 方法,就会看到以下的错误提示。

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

    掌握Flutter底部导航栏:畅游导航之旅

    我们将介绍如何创建基本的底部导航栏结构,自定义其外观,实现与页面的切换和状态管理,并探索一些高级功能,如徽章、动画效果等。...selectedIconTheme: IconThemeData(size: 30), // 更改选中项的图标大小 onTap: _onItemTapped, ), 4.2 自定义背景颜色和形状...,如圆角矩形等。...下面是一个示例,演示了如何为底部导航栏添加渐变动画效果: class MyBottomNavigationBar extends StatefulWidget { @override _MyBottomNavigationBarState...此外,我们还探讨了如何利用状态管理库(如Provider和Bloc)来管理底部导航栏的状态,以及如何实现一些高级功能,如添加徽章、动态更改导航栏项以及实现动画效果等。

    2.9K10

    Flutter主题切换——让你的APP也能一键换肤

    今天我们就来看看,如何在 Flutter 中给你的 App 添加换肤功能。...,见下面介绍 Color primaryColor, //主色,决定导航栏颜色 Color accentColor, //次级色,决定大多数Widget的颜色,如进度条、开关等。...颜色和主题[1] 持久化选择的主题 这里就需要使用到一开始提到的flustars中的SpUtil了,我们一般会在页面初始化加载的时候读取保存的颜色信息,所以我们需要在初始化页面配置如下代码: String...上面这段代码就是将我们最开始选定的一些主题themeColorMap展示出来,告诉用户可以切换哪些主题。...其中onTap内的代码就是上一节中提到的设置颜色主题的方法,InkWell主要用于提供主题色的点击效果,换成GestureDetector也是可以的。

    5.1K40

    列表控件listbox(一)

    ListItem,获得列表框中被选择的条目     Count            列表框中条目的总数     SelectedIndex    列表框中被选择项的索引值     Items           ...泛指列表框中的所有项,每一项的类型都是ListItem 2....取被选中项的值     ListBox.SelectedValue 3. 添加项:     ListBox.Items.Add("所要添加的项"); 4....如果是向上移位,就是把当前选定项的的上一项的值赋给当前选定的项,然后把刚才新加入的对象的值,再附给当前选定项的前一项。     ...具体代码为:     //定义一个变量,作移位用     index = -1;     //将当前条目的文本以及值都保存到一个临时变量里面     ListItem lt=new ListItem (

    1.8K20

    Flutte部件目录-Material Components 顶

    final onTap → ValueChanged 点击条目时调用的回调. [...]...TabBarView 显示与当前选定选项卡相对应的部件的页面视图。 通常与TabBar结合使用。 ?...FlatButton 平面按钮是在材料组件部件上打印的部分,通过填充颜色对触摸作出反应。 ? IconButton 图标按钮是一个打印在材质小部件上的图片,通过填充颜色(墨水)对触摸作出反应。 ?...对话框,弹出框和面板 SimpleDialog 简单的对话框可以提供有关列表项的其他详细信息或操作。 例如,他们可以显示头像图标,以阐明潜台词或正交行为(如添加帐户)。 ?...芯片代表小块中的复杂实体,如联系人。 ? Tooltip 工具提示提供的文本标签可帮助解释按钮或其他用户界面操作的功能。

    12.1K40

    React-利用React-Profiler提升应用性能

    「提交信息面板」--关于单个选定的commit阶段或单个选定组件的细节。 提交区域 React调和算法分为两个阶段:「渲染」和「提交」。 「渲染阶段」收录组件进行何种的信息变更。...这些提交也可以通过一个从绿色到黄色的颜色梯度来区分 ❝ 黄色是性能较差的commit 绿色是性能较好的commit ❞ 因此,「较高的黄条代表commit时间比较短的绿条长」。...❝条形图的「宽度」表示该「组件及其子组件的渲染时间」 条形图的颜色代表组件「本身渲染的时间」(绿色代表快,黄色代表慢) ❞ 因此,在上面的例子中,FilterableList 的宽度代表 FilterableList...这意味着「颜色和宽度之间有直接的关联」。 正如你所看到的,List花了最长的时间来渲染,所以它位于顶部,它在条形图中是最宽的,它在条形图中是最黄的。...然后,在我们提供的实验案例中,ListItem在每次commit的时候,都会被渲染。 让我们放大第二个commit中的一个ListItem,试着弄清楚。

    2.5K10

    DropDownList 详解「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。DropDownList 控件用于创建下拉列表。DropDownList 控件中的每个可选项都是由 ListItem 元素定义的!...5、Items属性:表示列表中各个选项的集合,如DropDownList.Items(i) 表示第i个选项,i从0开始。每个选项都有以下3个基本属性: Text 属性:表示每个选项的文本。...Count属性:通过Items.Count属性可获得DropDownList控件的选项数; Add方法:通过items.Add方法可以向 DropDownList控件添加选项; Remove方法:通过...6、SelectedIndex属性:用于获取下拉列表中选项的索引值。如果未选定任何项,则返回值-1(负1)。 7、SelectedItem属性:用于获取列表中的选定项。...通过该属性可获得选定项的Text 和Value属性值。 8、SelectedValue属性:用于获取下拉列表中选定项的值。

    3.7K20

    【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】

    Text 组件显示一个特定的图标(通过 \ue679 这个 Unicode 编码对应的图标,可能是自定义字体图标集中的一个),设置了各种样式,如背景颜色、使用注册的 myFont 字体、字体大小、颜色、...轮播图 ListItem: 内部的 Swiper 组件用于实现图片轮播效果,添加了多个 Image 组件(资源通过类似 $r('app.media.imgXX') 引用)。...listItem 函数主要用于给 Text 组件设置特定的宽高、背景颜色(使用之前注册的 myFont 字体、较大字体、白色字体颜色、圆形边框以及文本居中对齐等样式,从代码使用场景来看,可能用于那些作为图标样式展示的...在这个方法中,通过一个循环(从 1 到 20)往 datas 数组中添加模拟的产品数据。...,会触发这个回调,将当前选中的选项卡索引更新到 selectedIndex 这个状态变量中,这样就能实时根据选中情况更新界面上相关元素(如底部导航栏图标和文字颜色)的样式了,保证 UI 展示与用户操作的一致性

    72910

    【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】

    Text 组件显示一个特定的图标(通过 \ue679 这个 Unicode 编码对应的图标,可能是自定义字体图标集中的一个),设置了各种样式,如背景颜色、使用注册的 myFont 字体、字体大小、颜色、...轮播图 ListItem: 内部的 Swiper 组件用于实现图片轮播效果,添加了多个 Image 组件(资源通过类似 $r('app.media.imgXX') 引用)。...listItem 函数主要用于给 Text 组件设置特定的宽高、背景颜色(使用之前注册的 myFont 字体、较大字体、白色字体颜色、圆形边框以及文本居中对齐等样式,从代码使用场景来看,可能用于那些作为图标样式展示的...在这个方法中,通过一个循环(从 1 到 20)往 datas 数组中添加模拟的产品数据。...,会触发这个回调,将当前选中的选项卡索引更新到 selectedIndex 这个状态变量中,这样就能实时根据选中情况更新界面上相关元素(如底部导航栏图标和文字颜色)的样式了,保证 UI 展示与用户操作的一致性

    83900

    133. 垂直列表组件实战:打造高效联系人列表 基础篇

    1.1 List组件的特点特点说明高效渲染采用懒加载机制,只渲染可视区域内的元素灵活布局支持垂直和水平方向的布局丰富样式支持分割线、滚动效果等多种样式定制事件处理提供丰富的事件回调,如滚动、触摸等性能优化针对大数据量场景做了专门优化...ListItem是List的子组件,用于定义列表中的单个数据项的布局和行为。...ListItem的高度为64像素,保证每个列表项高度一致2.5 分割线设置为了使列表项之间有明确的分隔,我们为List组件添加了分割线:.divider({ strokeWidth: 1,...,如height(56)、width(40)等边距和填充:使用padding设置内边距使用margin设置外边距颜色和背景:设置背景颜色backgroundColor设置文本颜色fontColor文本样式...和ListItem组件创建一个垂直方向的联系人列表。

    19700

    【Flutter 专题】11 底部状态栏了解下?

    何为 BottomNavigationBar ?...与 body 同级的位置添加 BottomNavigationBar,BottomNavigationBarItem 中可以添加文字标签或图标 (Icons/Image) 等,若图片不存在时会显示空白;...只有底部状态栏是不够的,还需要对应的中间展示内容块,可以跟 Android 的思路一样,添加几个 Page() 页作为 Fragment,和尚因为测试内容相对简单,尝试使用了 PageView,即对应...此时主模块 PageView 可以滑动切换内容,但是对应的底部状态栏不会变化;因为目前没有绑定对应的点击事件等;此时需要添加 PageController 和 状态栏的 onTap 点击事件;如下: int..., items: [ ... ], //设置当前的索引 currentIndex: _currentIndex, //tabBottom的点击监听 onTap: (int

    2.3K41

    Flutter Widgets 之 BottomNavigationBar

    点击其他2个item时没有反应,添加切换效果: int _currentIndex = 0; BottomNavigationBar( onTap: (int index) {...currentIndex代表当前显示导航的索引,当前切换时调用onTap,在onTap回调中调用setState方法改变_currentIndex的值达到切换的效果。 效果如下: ?...我们还可以设置其背景颜色(backgroundColor)、图标大小(iconSize)、选中和未选中图标、字体的颜色,大小等。...如果导航的图标是自己设计的图标,这时仅仅通过BottomNavigationBar是无法实现我们想要的效果的,比如微信的导航的效果,虽然选中和未选中也是颜色的区别,但图标不是Icons自带的图标,想要实现切换...通过切换导航而改变页面是App中最常用的方式,开始构建页面的切换: int _currentIndex = 0; Widget _currBody = HomePage(); _onTap(int

    94730
    领券