flutter 小计2

1. Offstage类

复制代码
/**
 * 控制child是否显示
 *
	当offstage为true,控件隐藏; 当offstage为false,显示;
	当Offstage不可见的时候,如果child有动画等,需要手动停掉,Offstage并不会停掉动画等操作。
 
	const Offstage({ Key key, this.offstage = true, Widget child })
*/
 
简介
Offstage 的作用很简单,通过一个参数,来控制child是否显示,日常使用中也算是比较常用的控件。

布局行为
Offstage的布局行为完全取决于其offstage参数
 
当offstage为true,当前控件不会被绘制在屏幕上,不会响应点击事件,也不会占用空间;
当offstage为false,当前控件则跟平常用的控件一样渲染绘制;

另外,当Offstage不可见的时候,如果 child 有动画,应该手动停掉,Offstage并不会停掉动画。

2. 悬浮提示

复制代码
Tooltip(
  message: StringUtil.listToStr(value['dispose']),
  padding: EdgeInsets.all(10),
  verticalOffset: 0,
  decoration: BoxDecoration(
	color: Colors.white,
	borderRadius: BorderRadius.circular(2),
	border: Border.all(width: 1, color: CusTheme.colorC),
	boxShadow: [
	  BoxShadow(color: CusTheme.colorC, blurStyle: BlurStyle.normal, offset: Offset(0, 2), blurRadius: 3),
	],
  ),
  textStyle: TextStyle(fontSize: 12, color: CusTheme.color3, fontFamily: 'YaHei'),
  child: Text(
	StringUtil.listToStr(value['dispose']),
	style: Styles.styleF13C3,
	softWrap: false,
	overflow: TextOverflow.ellipsis,
	maxLines: 1,
  )
)

3. 为页面切换加入动画效果

https://flutter.cn/docs/cookbook/animation/page-route-animation

4. Flutter调用摄像头录像及获取视频信息

复制代码
https://blog.csdn.net/qq_38779672/article/details/121775507

5. Flutter: Semantics控件

复制代码
https://blog.csdn.net/qq_17766199/article/details/103823259
https://blog.csdn.net/cpongo1/article/details/89545685

6. setState 无效

复制代码
如果你使用的是底部导航栏,你需要一个没有状态的小部件列表。如果您想在页面中进行动画过渡,您将需要以下内容:
StatefulBuilder(
	builder:(BuildContext context, StateSetter setState) {
		   return Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    TextButton(
                      onPress: (index) {
                        setState(() {
                          if (curIndex != index) {
                            curIndex = index;
                          }
                        });
                      },
                    ),
                    ...
                  ],
                );
	},
),

7. Another exception was thrown: setState() or markNeedsBuild() called during build

复制代码
如果你想在initState的时候调用这个组件,那么就需要等父组件创建完成后再去创建小组件,
官方提供了一个组件创建完成的回调通知方法。

	WidgetsBinding.instance.addPostFrameCallback((_) {
		   //需要创建的小组件
	 });
	
在父组件创建完成之后,再创建小组件。
相关推荐
小白学鸿蒙14 小时前
使用Flutter从0到1构建OpenHarmony/HarmonyOS应用
flutter·华为·harmonyos
不爱吃糖的程序媛16 小时前
Flutter OH 框架介绍
flutter
ljt272496066116 小时前
Flutter笔记--加水印
笔记·flutter
恋猫de小郭19 小时前
2026,Android Compose 终于支持 Hot Reload 了,但是收费
android·前端·flutter
ljt27249606612 天前
Flutter笔记--事件处理
笔记·flutter
Feng-licong2 天前
告别手写 UI:当 Google Stitch 遇上 Flutter,2026 年的“Vibe Coding”开发流
flutter·ui
不爱吃糖的程序媛2 天前
Flutter OH Engine构建指导
flutter
小蜜蜂嗡嗡2 天前
flutter实现付费解锁内容的遮挡
android·flutter
tangweiguo030519872 天前
Flutter iOS 调试利器:idevicesyslog 从入门到精通
flutter
tangweiguo030519873 天前
Flutter 异常捕获与处理:从入门到生产实践
flutter