我是靠谱客的博主 刻苦航空,这篇文章主要介绍Flutter悬浮按钮FloatingActionButton使用详解,现在分享给大家,希望可以做个参考。

1、普通用法

复制代码
1
2
3
4
5
6
floatingActionButton: FloatingActionButton( child: Icon(Icons.add), onPressed: (){ print('不要啊~'); }, ),

2、修改悬浮按钮位置

继承FloatingActionButtonLocation类,重写对应方法自定义位置

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import 'package:flutter/material.dart'; class CustomFloatingActionButtonLocation extends FloatingActionButtonLocation { FloatingActionButtonLocation location; double offsetX; // X方向的偏移量 double offsetY; // Y方向的偏移量 CustomFloatingActionButtonLocation(this.location, this.offsetX, this.offsetY); @override Offset getOffset(ScaffoldPrelayoutGeometry scaffoldGeometry) { Offset offset = location.getOffset(scaffoldGeometry); return Offset(offset.dx + offsetX, offset.dy + offsetY); } }

使用

复制代码
1
2
floatingActionButtonLocation:CustomFloatingActionButtonLocation( FloatingActionButtonLocation.endFloat, 0, -DpUtils.setWidth(20)),

3、修改悬浮按钮大小

复制代码
1
2
3
4
5
6
7
8
floatingActionButton: SizedBox( height: 100.0, width: 100.0, child:FloatingActionButton( child: Icon(Icons.add), onPressed: () {}, ), ),

4、去除悬浮按钮切换动画

继承FloatingActionButtonAnimator类并重写对应的方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import 'package:flutter/material.dart'; class NoScalingAnimation extends FloatingActionButtonAnimator{ double _x; double _y; @override Offset getOffset({Offset begin, Offset end, double progress}) { _x = begin.dx +(end.dx - begin.dx)*progress ; _y = begin.dy +(end.dy - begin.dy)*progress; return Offset(_x,_y); } @override Animation<double> getRotationAnimation({Animation<double> parent}) { return Tween<double>(begin: 1.0, end: 1.0).animate(parent); } @override Animation<double> getScaleAnimation({Animation<double> parent}) { return Tween<double>(begin: 1.0, end: 1.0).animate(parent); } }

使用

复制代码
1
floatingActionButtonAnimator: NoScalingAnimation(),

5、一般的自定义悬浮按钮样式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@override Widget build(BuildContext context) { return Scaffold( floatingActionButton: FloatingActionButton( child: Container( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: <Widget>[ Image.asset( "images/float_button.png", width: DpUtils.setWidth(32), height: DpUtils.setWidth(32), ), Text( "悬浮按钮", style: TextStyle(fontWeight: FontWeight.bold, fontSize: DpUtils.setSp(20), color: Colors.white), ), ], ), ), elevation: 0, onPressed: () { _doSome(); }, backgroundColor: Colors.black, heroTag: "floatHome", ), ) )}

6、彻底的自定义悬浮按钮样式

其实,floatingActionButton 可以直接传入普通的widget。所以该干嘛干嘛咯

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@override Widget build(BuildContext context) { return Scaffold( floatingActionButton: Container( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: <Widget>[ Image.asset( "images/home_icon_publishing.png", width: DpUtils.setWidth(32), height: DpUtils.setWidth(32), ), Text( "发主题", style: TextStyle(fontWeight: FontWeight.bold, fontSize: DpUtils.setSp(20), color: Colors.white), ), ], ), ), ); }

到此这篇关于Flutter悬浮按钮FloatingActionButton使用详解的文章就介绍到这了,更多相关Flutter悬浮按钮FloatingActionButton内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客! 

最后

以上就是刻苦航空最近收集整理的关于Flutter悬浮按钮FloatingActionButton使用详解的全部内容,更多相关Flutter悬浮按钮FloatingActionButton使用详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部