第十九回:浮动按钮FloatingActionButton

文章介绍了Flutter中的FloatingActionButton,包括其概念、常用属性如backgroundColor和onPressed,以及如何通过Scaffold的floatingActionButton属性来添加和定位浮动按钮。示例代码展示了如何创建一个带有自定义颜色和图标的浮动按钮,并响应点击事件。
摘要由CSDN通过智能技术生成


我们在上一章回中介绍了如何使用 BottomNavigationBar切换页面,本章回中将介绍浮动按钮: FloatingActionBar。闲话休提,让我们一起Talk Flutter吧。

概念介绍

浮动按钮就是悬浮在屏幕上的按钮,通常们于屏幕右下角或者底部中央位置,因此它经常和BottomNavitationBar配合使用,本章回中将详细介绍它的使用方法。

使用方法

和其它的Widget一样,浮动按钮提供了相关的属性来控制自己,下面是常用的属性:

  • backgroundColor属性用来控制浮动按钮的背景颜色,如果不设置默认为蓝色;
  • shape属性用来控制浮动按钮的形状,如果不设置默认为圆形;
  • child属性用来控制浮动按钮上的文字或者图标,默认什么也不显示;建议设置此属性;
  • onPressed属性用来响应浮动按钮的点击事件,该属性必须设置,不然会报编译错误;

注意:浮动按钮是Scaffold Widget的属性,我们给它的floatingActionButton属性赋值后才可以显示浮动按钮,还有一个floatingActionButtonLocation属性也建议修改,该属性主要用来控制浮动按钮的显示位置,如果不赋值,默认在屏幕右下角显示。常用的值是FloatingActionButtonLocation.centerFloat,该值表示在屏幕中间,底部导航栏上方显示浮动按钮。

示例代码

下面是浮动按钮的代码,为了控制它的大小,我们把它放到了Container容器中,并且设置了容器的大小和边框。下面是详细的代码。

  final Widget _floatingActionButton = Container(
    width: 90.0,
    height: 90.0,
    padding: const EdgeInsets.all(8),
    decoration: BoxDecoration(
      color: Colors.green,
      borderRadius: BorderRadius.circular(60),
    ),
    child: FloatingActionButton(
      backgroundColor: Colors.purpleAccent,
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(16.0),
        side: const BorderSide(
          width: 2,
          color: Colors.black87,
        ),
      ),
      //     //可以是文字或者icon,它会显示在FloatingButton上,默认是蓝色圆形
      // child: const Text("Float Button"),
      child: const Icon(Icons.add),
      onPressed: () {
        print("FloatingButton onClicked");
      },
    ),
  );

把上面定义的浮动按钮对象赋值给Scaffold对象的floatingActionButton属性,然后通过floatingActionButtonLocation属性调整浮动按钮的显示位置。下面是核心的代码,完整的代码请查看Github上Ex010中的代码。

return Scaffold(
  appBar: AppBar(
    title: const Text("BottomNavigationBar Example "),
  ),
  // body: const Text("test"),
  body: bodyWidgetList[selectIndex],
  bottomNavigationBar: BottomNavigationBar()//详细内容省略
  floatingActionButton: _floatingActionButton,
  //控制FloatingActionButton的位置,默认在屏幕右下角
  //centerFloat和centerDocked的区别在于Docked会让FloatingButton一半位于屏幕,一半位于BottomNavigationBar
  floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
  // floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
);

编译并且运行上面的程序,可以看到在底部导航栏上面有一个方形紫色的浮动按钮,这个方形通过它的shape属性来实现。

浮动按钮外层还有一个绿色的圆框,这个是由浮动按钮外层的Container Widget控制的。我建议大家在浮动按钮外层嵌套一个Container容器,这样不但可以控制浮动按钮的大小,还在调整浮动按钮的位置。

浮动按钮上面显示一个加号Icon,点击后会在日志中输出print()方法中内容。

看官们,关于浮动按钮相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值