当前位置: 首页 > article >正文

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件,通常用于显示一个圆形的按钮,它悬浮在内容之上,旨在吸引用户的注意力,并代表屏幕上的主要动作。这种按钮是Material Design的一部分,通常放置在页面的右下角,但也支持自定义位置。

参数

参数名类型描述
onPressedVoidCallback用户点击按钮时触发的回调函数;如果为null,则按钮将被禁用。
childWidget按钮内部的widget,通常是图标或文本。
tooltipString当长按按钮时显示的提示信息。
backgroundColorColor按钮的背景颜色,默认使用主题色。
foregroundColorColor按钮内图标或文本的颜色。
elevationdouble设置按钮的阴影大小,默认值根据Material Design规范设置。
focusColorColor按钮获得焦点时的颜色。
hoverColorColor鼠标悬停在按钮上时的颜色。
shapeShapeBorder定义按钮的形状,默认是一个圆形,可以通过 CircleBorder 或其他 ShapeBorder 类来自定义。
minibool一个布尔值,用于创建更小版本的浮动操作按钮。
isExtendedbool表示是否是扩展版的浮动按钮,适用于 FloatingActionButton.extended 构造函数。
materialTapTargetSizeMaterialTapTargetSize定义了按钮可点击区域的大小,对于无障碍性很重要。
autofocusbool指定此按钮是否应该自动聚焦。默认值为false。
clipBehaviorClip定义如何裁剪子部件,例如是否允许内容溢出边界。
enableFeedbackbool是否启用触觉反馈(如震动),默认为true。
splashFactoryInteractiveInkFeatureFactory定义了点击时产生的涟漪效果类型,默认为 InkRipple.splashFactory

enableFeedback有情况会无法触发,建议手动在回调方法中调用HapticFeedback.vibrate();得到震动

示例代码:

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  //所有下方行为按钮
  List<Widget> actionList = const [
    Icon(Icons.social_distance),
    SizedBox(
      width: 30,
    ),
    Icon(Icons.cyclone),
    SizedBox(
      width: 30,
    ),
    Icon(Icons.manage_accounts),
    SizedBox(
      width: 40,
    )
  ];

  void floatBtnFunc () {
    debugPrint("点击了悬浮按钮");
    HapticFeedback.vibrate();
  }

  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // 顶部栏代码。。。。。。。。。。。。。
      ), //顶部栏
      body: Center(
        child: ListView(
          padding: const EdgeInsets.only(top: 15),
          children: const [
            Row(
              children: [
                Text("按钮示例")
              ],
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: floatBtnFunc, //点击事件
        tooltip: "悬浮按钮", //长按提示信息
        backgroundColor: Colors.blue, //背景颜色
        foregroundColor: Colors.white, // 内部组件颜色
        elevation: 10,  //阴影
        shape: ShapeBorder.lerp(
          const CircleBorder(),
          const CircleBorder(),
          0.5
        ),  //按钮形状
        mini: false, //是否小尺寸
        hoverColor: Colors.green, //悬浮颜色
        splashColor: Colors.yellow, //点击颜色
        focusColor: Colors.red, //获取焦点颜色
        autofocus: true,  //是否自动获取焦点
        
        clipBehavior: Clip.hardEdge, //裁剪方式
        child: const Icon(Icons.info), // //按钮内部组件
      ),
    );
  }
}

效果

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/446288.html

相关文章:

  • 免费GIS工具箱:轻松将glb文件转换成3DTiles文件
  • SLURM资料
  • 《探秘 Qt Creator Manual 4.11.1》
  • 【python虚拟环境安装】linux centos 下的python虚拟环境配置
  • 小鹏“飞行汽车”上海首飞,如何保障智能出行的安全性?
  • 昇思25天学习打卡营第33天|共赴算力时代
  • 【优先算法】双指针 --(结合例题讲解解题思路)(C++)
  • 【java】全文索引,普通索引,以及ES搜索引擎组件的关系
  • MATLAB中cvx工具箱的使用
  • 三次翻转实现数组元素的旋转
  • 深入了解Python模拟负载均衡器:将请求高效分发至多个服务器
  • Emacs折腾日记(四)——elisp控制结构
  • Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
  • springboot 3 websocket react 系统提示,选手实时数据更新监控
  • Flask内存马学习
  • (12)YOLOv10算法基本原理
  • 基于语义的NLP任务去重:大语言模型应用与实践
  • 数据结构-栈与队列
  • GaussDB数据库迁移方案介绍
  • 某医疗行业用户基于Apache SeaTunnel从调研选型到企业数据集成框架的落地实践
  • 智慧商城:购物车模块基本静态结构 + 构建vuex cart模块,获取数据存储(异步actions)
  • 图解HTTP-HTTP状态码
  • ECharts散点图-SymbolShapeMorph,附视频讲解与代码下载
  • Go 语言GC(垃圾回收)的工作原理
  • 「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
  • 前端笔记——大数据量浏览器卡顿优化思路