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((_) {
//需要创建的小组件
});
在父组件创建完成之后,再创建小组件。