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((_) {
		   //需要创建的小组件
	 });
	
在父组件创建完成之后,再创建小组件。
相关推荐
stringwu3 小时前
Flutter DevTools 全景介绍
flutter
GISer_Jing6 小时前
跨平台Hybrid App开发实战指南
android·flutter·react native
猫林老师17 小时前
Flutter for HarmonyOS开发指南(八):国际化与本地化深度实践
flutter·华为·harmonyos
dragon7251 天前
FutureProvider会刷新两次的问题研究
前端·flutter
2501_915909061 天前
Flutter 应用怎么加固,多工具组合的工程化实战(Flutter 加固/Dart 混淆/IPA 成品加固/Ipa Guard + CI)
android·flutter·ios·ci/cd·小程序·uni-app·iphone
猪哥帅过吴彦祖1 天前
Flutter 从入门到精通:状态管理入门 - setState 的局限性与 Provider 的优雅之道
android·flutter·ios
天天开发1 天前
Flutter 每日库:轻松监听网络变化,就靠 connectivity_plus!
flutter
猫林老师1 天前
Flutter for HarmonyOS开发指南(七):插件开发与平台能力桥接
flutter·华为·harmonyos
Sindyue2 天前
flutter项目老是卡在Running Gradle task ‘assembleRelease‘......
flutter