iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Flutter常用button组件及自定义按钮组件
  • 682
分享到

Flutter常用button组件及自定义按钮组件

flutterandroid 2023-10-01 21:10:04 682人浏览 安东尼
摘要

Flutter 里有很多的 Button 组件很多,常见的按钮组件有:ElevatedButton、TextButton、IconButton、OutlinedButton、ButtonBar、Flo

Flutter 里有很多的 Button 组件很多,常见的按钮组件有:ElevatedButton、TextButton、IconButton、OutlinedButton、ButtonBar、FloatingActionButton 等。

ElevatedButton(旧版本的RaisedButton) :凸起的按钮,其实就是 Material Design 风格的 Button,较RaisedButton,ElevatedButton会自带背景色
OutlinedButton(旧版本OutlineButton):线框按钮,默认有一个边框,不带阴影且背景透明.按下后,边框颜色会变亮、同时出现背景和阴影(通过side配置边框);
TextButton(旧版本FlatButton):文本按钮,默认背景透明并不带阴影.按下后,会有背景色
IconButton :图标按钮,是一个可点击的Icon,不包括文字,默认没有背景,点击后会出现背景,默认用于导航条;
ButtonBar:按钮组,可以默认实现一个按钮组,通过 children 属性可以传入多个 Button。

FloatingActionButton:浮动按钮,我们会单独拎出来演示

常用属性:

请添加图片描述
请添加图片描述
新增的三个Button组件:ElevatedButton,OutlinedButton,TextButton三者用法基本一致,所以三者基本只演示了ElevatedButton,想详细了解的可以看看这个博主的*Flutter的button的按钮ElevatedButton总结的非常详细

基本按钮组件及样式演示:

import 'package:flutter/material.dart';class ButtonDemoPage extends StatelessWidget {  const ButtonDemoPage({Key? key}) : super(key: key);  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        actions: [IconButton(onPressed: () {}, icon: Icon(Icons.settings))],      ),      body: Column(        mainAxisAlignment: MainAxisAlignment.center,        crossAxisAlignment: CrossAxisAlignment.center,        children: [          ElevatedButton(            onPressed: () {},            child: Text('圆角按钮'),            style: ButtonStyle(                shape: MaterialStateProperty.all(RoundedRectangleBorder(                    borderRadius: BorderRadius.circular(10)))),          ),          ElevatedButton(            onPressed: () {},            child: Text('圆形按钮'),            style: ButtonStyle(                shape: MaterialStateProperty.all(CircleBorder(                    side: BorderSide(color: Colors.white)                ))),          ),          Row(            mainAxisAlignment: MainAxisAlignment.center,            children: [              Expanded(                  child: Container(                    height: 60,                    margin: EdgeInsets.all(10),                    child: ElevatedButton(                      onPressed: () {},                      child: Text('自适应'),                    ),                  )              ),            ],          ),          Row(            mainAxisAlignment: MainAxisAlignment.center,            children: [              Expanded(                  child: Container(                    height: 60,                    margin: EdgeInsets.all(10),                    child: OutlinedButton(                      onPressed: () {},                      child: Text('OutlinedButton'),                      style: ButtonStyle(                        side: MaterialStateProperty.all(BorderSide(width: 1,color: Colors.red))                      ),                    ),                  )              ),            ],          ),          Row(            mainAxisAlignment: MainAxisAlignment.center,            children: [              ButtonBar(                children: [                  Container(                    height: 60,                    width: 120,                    child: ElevatedButton(                      onPressed: () {},                      child: Text('宽度高度'),                      style: ButtonStyle(                          backgroundColor:  MaterialStateProperty.all(Colors.green), //背景色                          foregroundColor:  MaterialStateProperty.all(Colors.red) //字体色                          ),                    ),                  ),                  ElevatedButton(                    onPressed: () {},                    child: Text('阴影按钮'),                    style: ButtonStyle(                        backgroundColor: MaterialStateProperty.all(Colors.red),                        foregroundColor:MaterialStateProperty.all(Colors.white),                        elevation: MaterialStateProperty.all(50) //阴影                        ),                  ),                  ElevatedButton.icon(                      onPressed: () {},                      icon: Icon(Icons.add),                      label: Text('图标按钮')),                ],              )            ],          )        ],      ),    );  }}

请添加图片描述

FloatingActionButton浮动按钮

FloatingActionButton 简称 FAB ,可以实现浮动按钮,也可以实现类似闲鱼 app 的地步凸起导航,与appbar同级

常用属性:
请添加图片描述
实现类似闲鱼底部凸起导航按钮的思路:因为FloatingActionButton本身没有给调整按钮大小的组件,所以我们可以将它套入一个Container中,利用容器的属性来调整按钮的大小

      floatingActionButton: Container(        width: 80,        height: 80,        padding: EdgeInsets.all(8),        margin: EdgeInsets.only(top: 40),        decoration: BoxDecoration(          borderRadius: BorderRadius.circular(40),          color: Colors.white,        ),        //实现圆形白边        child: FloatingActionButton(          onPressed: () {            setState(() {              _currentIndex=1;            });          },//按下按钮跳转到索引值为1的页面          child: Icon(            Icons.add,            color: Colors.black,            size: 40,          ),          backgroundColor: this._currentIndex==1?Colors.red:Colors.yellow,//点击改变背景色        ),      ),      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,

请添加图片描述

请添加图片描述

自定义按钮组件:

class RaisedButton extends StatelessWidget {  final text;  final pressed;  final width;  final height;  const RaisedButton({this.text='',this.pressed=null,this.width=80,this.height=30,});  @override  Widget build(BuildContext context) {    return Container(      width: this.width,      height: this.height,      child: ElevatedButton(onPressed: (){}, child: Text(this.text)),    );  }}

这里,我们自定义的按钮组件就完成了。因为flutter更新也比较快,废弃的组件也比较多,如果特别喜欢使用用某种已废弃组件,那么可以通过这种方式来创建它

来源地址:https://blog.csdn.net/weixin_46136019/article/details/129706634

--结束END--

本文标题: Flutter常用button组件及自定义按钮组件

本文链接: https://www.lsjlt.com/news/422442.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter常用button组件及自定义按钮组件
    Flutter 里有很多的 Button 组件很多,常见的按钮组件有:ElevatedButton、TextButton、IconButton、OutlinedButton、ButtonBar、Flo...
    99+
    2023-10-01
    flutter android
  • vue自定义封装按钮组件
    vue按钮组件的自定义封装代码,供大家参考,具体内容如下 封装按钮组件 button.vue <template> <button class="butto...
    99+
    2024-04-02
  • Flex中自定义Alert控件按钮(Button)样式的例子
    下面是完整代码(或点击这里察看):Download: main.mxml1. <xml version="1.0" encoding="utf-8"> ...
    99+
    2023-05-25
    button flex application download encoding
  • 微信小程序按钮组件button怎么使用
    这篇文章主要介绍“微信小程序按钮组件button怎么使用”,在日常操作中,相信很多人在微信小程序按钮组件button怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序按钮组件button怎么使用...
    99+
    2023-06-26
  • Flutter刷新组件RefreshIndicator自定义样式demo
    目录前言效果图RefreshIndicator初始样式RefreshIndicator样式修改(简单)RefreshIndicator样式修改(复杂)简单的样式修改复杂的样式修改前言...
    99+
    2023-02-22
    Flutter RefreshIndicator样式 Flutter 刷新组件 RefreshIndicator自定义样式
  • Flutter多选按钮组件Checkbox使用方法详解
    Flutter 中的多选按钮组件有两种,供大家参考,具体内容如下 1. Checkbox 多选按钮,一般用来表现一些简单的信息。 常用属性如下: (1). value  多...
    99+
    2024-04-02
  • 自定义admin组件
    配置路由 1 新建一个项目, 创建一个app01和stark应用,stark创建一个service包,并在service下创建stark.py。然后注册app   2 仿照site.py的注册代码,写stark.py代码: cla...
    99+
    2023-01-31
    自定义 组件 admin
  • 微信小程序button组件如何自定义样式
    本篇内容主要讲解“微信小程序button组件如何自定义样式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序button组件如何自定义样式”吧!背景颜色wxml代码<button c...
    99+
    2023-06-26
  • Bootstrap按钮组件怎么使用
    这篇文章主要介绍“Bootstrap按钮组件怎么使用”,在日常操作中,相信很多人在Bootstrap按钮组件怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bootstrap按钮组件怎么使用”的疑惑有所...
    99+
    2023-07-04
  • 怎么使用Flutter刷新组件RefreshIndicator自定义样式demo
    这篇文章主要介绍了怎么使用Flutter刷新组件RefreshIndicator自定义样式demo的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Flutter刷新组件RefreshIndicator自定...
    99+
    2023-07-05
  • Android如何自定义Switch开关按钮控件
    这篇“Android如何自定义Switch开关按钮控件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android如何自定义...
    99+
    2023-07-02
  • 自定义 Web 组件 101:利用 JavaScript 自定义元素
    创建自定义元素 要创建自定义元素,需要使用 customElements.define() 方法。该方法将自定义元素的名称、类和可选选项作为参数: customElements.define("my-element", class ext...
    99+
    2024-04-02
  • web面试vue自定义组件及调用方式
    引入: 由于项目需求, 部分相同的代码我们会封装成组件, 在需要使用的地方导入, 并以标签的形式书写在中, 但是在"vant"组件库中, "Dialog 弹出框"组件有2中使用方式 ...
    99+
    2024-04-02
  • vue如何用directives自定义组件
    这篇“vue如何用directives自定义组件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何用directive...
    99+
    2023-07-04
  • Vue可左右滑动按钮组组件怎么用
    这篇文章将为大家详细讲解有关Vue可左右滑动按钮组组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下左右两箭头控制按钮组左右移动,双击到最左或最右边,功能比较简单。如下所示<tem...
    99+
    2023-06-29
  • Bootstrap中的按钮组件有什么用
    小编给大家分享一下Bootstrap中的按钮组件有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Bootstrap是什么Bootstrap是目前最受欢迎的前...
    99+
    2023-06-14
  • Android自定义封装banner组件
    自定义封装 banner 组件,供大家参考,具体内容如下1. 效果图预览 2.基本功能一个简单方便的轮播图组件,基于viewpager 基础上进行的封装。可设置 项目中图片,网络图片, View;支持循环自动播放,手势滑动切换,i...
    99+
    2023-05-31
    android banner 组件
  • vue怎么自定义keepalive组件
    本文小编为大家详细介绍“vue怎么自定义keepalive组件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么自定义keepalive组件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为什么会出现这种情...
    99+
    2023-07-02
  • Flutter利用Hero组件实现自定义路径效果的动画
    目录前言Hero 的定义RectTween自定义RectTween运行效果总结前言 我们在 页面切换转场动画,英雄救场更有趣!介绍了 Hero 动画效果,使用 Hero 用...
    99+
    2024-04-02
  • vue+element自定义查询组件
    本文主要介绍vue项目,在引入element的前提下,对组件进行二次封装实现通过配置项直接布局。 一、查询条件组件化 结合EventBus.js的使用,传递事件更高效,可以避免各种复...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作