17、 Flutter Widgets 之 内置各种Button

2023-11-02

flutter内置各种buttons

/**
 * @Author wywinstonwy
 * @Date 2022/1/2 10:52 下午
 * @Description:
 */
import 'package:demo202112/utils/common_appbar.dart';
import "package:flutter/material.dart";
enum ConferenceItem { AddMember, LockConference, ModifyLayout, TurnoffAl }

class WyButtoms extends StatefulWidget {
  const WyButtoms({Key? key}) : super(key: key);

  @override
  _WyButtomsState createState() => _WyButtomsState();
}

class _WyButtomsState extends State<WyButtoms> {


  @override
  Widget build(BuildContext context) {
    var selectItemValue = '北京';
    Object? _dropValue = '语文';
    final List<DropdownMenuItem> items = [];
    final DropdownMenuItem item1 = DropdownMenuItem(
      child: Text('北京'), value: '北京',);
    final DropdownMenuItem item2 = DropdownMenuItem(
      child: Text('上海'), value: '上海',);
    final DropdownMenuItem item3 = DropdownMenuItem(
      child: Text('广州'), value: '广州',);
    final DropdownMenuItem item4 = DropdownMenuItem(
      child: Text('深圳'), value: '深圳',);
    items.add(item1);
    items.add(item2);
    items.add(item3);
    items.add(item4);

    return Scaffold(
      appBar: getAppBar('内置各种buttons'),
      body: Container(
        padding: EdgeInsets.all(30),
        child: ListView(
            children: [
              _buildButton(
                  ElevatedButton(
                  onPressed: _ontap,
                  child: Text('ElevatedButton'),
                    


              )
              ),
              _buildButton(TextButton(onPressed: _ontap, child: Text('TextButton'))),
              const BackButton(),
              const CloseButton(),
              DropdownButton(
                value: _dropValue,
                items: [
                  DropdownMenuItem(child: Text('语文'),value: '语文',),
                  DropdownMenuItem(child: Text('数学'),value: '数学'),
                  DropdownMenuItem(child: Text('英语'),value: '英语'),
                ],
                onChanged: (value){
                  setState(() {
                    _dropValue = value;
                  });
                },
              ),
              FloatingActionButton(onPressed: _ontap),
              IconButton(onPressed: _ontap, icon: Icon(Icons.details,color: Colors.blue,)),
              MaterialButton(onPressed: _ontap,child: Text('MaterialButton'),),
              OutlinedButton(onPressed: _ontap, child: Text('OutlinedButton')),
              OutlinedButton.icon(onPressed: _ontap, icon: Icon(Icons.ac_unit), label: Text('OutlinedButton.icon')),
              PopupMenuButton(itemBuilder: (BuildContext context)=> //菜单项构造器
              <PopupMenuEntry<ConferenceItem>>[
                const PopupMenuItem<ConferenceItem>(
                  //菜单项
                  value: ConferenceItem.AddMember,
                  child: Text('添加成员'),
                ),
                const PopupMenuItem<ConferenceItem>(
                  value: ConferenceItem.LockConference,
                  child: Text('锁定会议'),
                ),
                const PopupMenuItem<ConferenceItem>(
                  value: ConferenceItem.ModifyLayout,
                  child: Text('修改布局'),
                ),
                const PopupMenuItem<ConferenceItem>(
                  value: ConferenceItem.TurnoffAl,
                  child: Text('挂断所有'),
                ),
              ],),
              RawMaterialButton(onPressed: _ontap,child: Text('RawMaterialButton'),),
              TextSelectionToolbarTextButton(child: Text('TextSelectionToolbarTextButton'), padding: EdgeInsets.all(30)),
              BackButtonIcon(),
            ],
        ),
      ),
    );
  }

  _ontap(){
    print('点击button');
  }
  _buildButton(Widget child){
    return Container(child: child,
      color: Colors.white70,
      width: 100,
    );
  }
}

效果:

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

17、 Flutter Widgets 之 内置各种Button 的相关文章

随机推荐

  • AIGC生态,引领社会、行业、个体的翻天覆地变革

    1879年 当爱迪生成功地实验出能够持续发光的灯丝时 他迎来了一个新的挑战 如何让更多人能够享受到电力的便利 经过艰难探索 直到1882年9月 在曼哈顿的珍珠街上 爱迪生才铺设了世界上第一张电力网络 为普罗大众提供了电力 正由此 第二次工业
  • qt 配置的相对路径写法

    被 pro文件中的相对路径给整糊涂了 仔细研究后 原来 pro文件中有两种相对路径 一种情况下 表示 pro文件所在的目录 另一种情况下 表示构建生成目录 INCLUDEPATH SOURCE FORM HEADERS 这些变量中使用的 指
  • c语言安装程序正在更新您的系统,win10更新出现无法完成更新正在撤销更改请不要关闭计算机怎么解决?...

    win10定期更新升级有利于巩固系统稳定性 有时候由于系统原因 并不是每次都能正常更新的 有时候 更新过程中出现 无法完成更新正在撤销更改请不要关闭计算 的情况 要等待很长时间 简直让人很苦恼 因此 现在和大家说说具体方法操作 感兴趣的朋友
  • 【学习笔记】大指数的两种处理方法——欧拉降幂和数学模拟

    问题背景 描述 题目范围 我们可以看到 y 的数位最长达1e5 1 远远超过了任何一个数据类型的范围 那我们如何计算像这样的大指数呢 有两种解决方法 我们先学习第一种 算法 欧拉降幂 对于算法欧拉降幂 你需要知道的东西有 1 欧拉函数 2
  • 前端项目使用小记

    main var prefix contextPath class manager classManager function load function load exampleTable bootstrapTable method ge
  • js取值

    取普通值 外层变量名 里层变量名 取数组 外层变量名 数组名 索引 里面的变量 ajax url newGoods to listVe type POST data type a success function data if data
  • STL nth_element排序算法

    nth element 算法和 partial sort 不同 应用的范围由它的第一个和第三个参数指定 第二个参数是一个指向第 n 个元素的迭代器 如果这个范围内的元素是完全有序的 nth dement 的执行会导致第 n 个元素被放置在适
  • STM32通用定时器(原理、结构体、库函数、定时器中断每秒闪烁一次灯) —— 时钟源、分频值、重装载值

    参考 stm32定时器与定时器中断 作者 打酱油的 发布时间 2021 04 11 01 04 09 网址 https blog csdn net weixin 46098612 article details 115493737 参考 s
  • git 拉取大文件超时解决方案

    1 设置深度 git clone depth 1 https gitee com tcwong pengExpressMS git cd yyyy 目录下 2 配置文件 git config add core compression 1 3
  • Git实战之git客户端上传文件到github

    Git实战之git客户端上传文件到github 一 Git介绍 1 Git简介 2 版本控制系统的分类 二 检查本地系统版本 三 windows安装Git客户端 1 进入windows的powershell 2 安装git客户端 3 检查安
  • 阿里云服务器部署flask项目「gunicorn + nginx + 支持https」

    最近做了一个微信小程序 使用 flask 实现了对应的后台 上线需要部署到服务器上 之前只是了解并没有全链路试过 靠着网上的资料最终完成部署上线 但中间遇到了较多的一些问题 网上的资料也比较零碎 所以整理了这篇文章 一方面是作为记录方便后续
  • JSP关闭触发事件,当点关闭页面按钮触发JS函数、事件,调用退出方法

    JSP控制关闭浏览器调用事件 第一种方法 window onbeforeunload function var n window event screenX window screenLeft var b n gt document doc
  • 关于虚拟化的问题解决记录

    一 背景 在去年购买了机械革命Code1 搭配的AMD芯片 但是由于虚拟化问题 虚拟机和Docker都迟迟没有进行安装 最近由于上Linux和学习云原生等 必须得安装 以下则进行了一些探索 解决 二 问题记录 关于Code1的虚拟化 对于机
  • 查看文件大小ls -l

  • Redis 基本属性

    redis 概念 redis是一个存储key value的非关系型数据库 数据存储在缓存中 读取速度很快 可以很好的解决每次都去数据库执行数据查询时间消耗问题 数据库支持的并发有限 redis单机可以支持上万并发 作用 缓存高频读的数据 减
  • linux sudo su 免密码,Ubuntu的sudo免密码设置

    正常情况下 在使用sudo命令时 系统是要求输入密码的 输入的密码会保存一小段时间 在这段时间内 sudo不再要求输入密码 之后 再使用sudo 系统仍会要求输入密码 但是在制作镜像过程中 我们可能会在系统自启动项启动很多服务 而且可能有些
  • 使用VS2019将c#生成dll文件

    生成dll部分 1 新建一个项目 选择 类库 用于创建C 类库dll项目 2 将Class1 cs改名自己要创建的文件名 Operate cs 并填入代码 3 贴入代码 using System using System Collectio
  • C++数据结构之--单向链表(SingleList)

    单向链表 单向链表 Singly Linked List 是一种常见的数据结构 它由一系列节点 Node 构成 每个节点包含数据 value 和一个指向下一个节点的指针 next 每个节点只知道它指向的下一个节点 而无法直接访问前一个节点
  • 设置多个dns_公共DNS全面故障:114.114.114.114 和 8.8.8.8

    2019年4月4日上午 全国大范围内的互联网用户在使用114 114 114 114 和 8 8 8 8 DNS服务器时 出现网站打开缓慢 或者打不开等现象 本次收到影响的地区包括北京 陕西 四川 重庆 贵州 广西 湖北 江西以及上海等地
  • 17、 Flutter Widgets 之 内置各种Button

    flutter内置各种buttons Author wywinstonwy Date 2022 1 2 10 52 下午 Description import package demo202112 utils common appbar d