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((_) {
		   //需要创建的小组件
	 });
	
在父组件创建完成之后,再创建小组件。
相关推荐
GitLqr10 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
唐诺11 小时前
Flutter Pigeon 跨端通信实战指南
flutter·pigeon
浮江雾11 小时前
Flutter第十七节-----路由管理(3)
android·开发语言·前端·javascript·flutter·入门
程序员老刘14 小时前
Flutter版本选择指南:3.44密集修BUG,9月大限将至 | 2026年7月
flutter·ai编程·客户端
恋猫de小郭17 小时前
Flutter 3D 渲染的全新选择和应用场景
android·前端·flutter
敲代码日常18 小时前
不会Flutter,怎么做服药提醒APP
flutter
浮江雾2 天前
Flutter第十六节-----路由管理(2)
android·开发语言·前端·javascript·flutter·html
恋猫de小郭2 天前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter