美文网首页Flutter
Flutter中FloatingActionButton自定义位

Flutter中FloatingActionButton自定义位

作者: IT晴天 | 来源:发表于2019-12-31 22:35 被阅读0次

转载请注明:IT晴天

FloatingActionButton的位置可以通过FloatingActionButtonLocation来设定,但是FloatingActionButtonLocation只有7个值,不能满足一些特定场合使用。

网上找到的文章基本是源码级的重写,代码量多,也太复杂了!所以决定自己实现一下,发现其实很简单。

因为floatingActionButtonLocation的值接收FloatingActionButtonLocation类型,而它是一个抽象类,所以实现一个自定义类,并重写getOffset方法即可:

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);
  }
}

具体调用如下:

floatingActionButtonLocation: CustomFloatingActionButtonLocation(FloatingActionButtonLocation.endFloat, 0, - 50)

原理很简单,就是选定一个参照点,然后给偏移值就行了,如果不想借用参照点,使用绝对地址,那上面的方法改造起来也很简单。

相关文章

网友评论

    本文标题:Flutter中FloatingActionButton自定义位

    本文链接:https://www.haomeiwen.com/subject/euwioctx.html