【Flutter——复选框实例代码超详细讲解!】

news2025/1/17 0:00:09

Flutter——复选框实例代码超详细讲解!

文章目录

      • Flutter——复选框实例代码超详细讲解!
        • 代码实现效果
        • 代码实例
        • 代码结构
        • 总结

代码实现效果

在这里插入图片描述

代码实例

import 'package:flutter/material.dart'; // 导入 Flutter 的核心库

void main() {
  runApp(const MyApp()); // 启动 Flutter 应用程序
}

class MyApp extends StatelessWidget { // 自定义部件:应用程序的入口部件
  const MyApp({Key? key}) : super(key: key); // 构造函数

  
  Widget build(BuildContext context) { // 渲染界面的方法
    return MaterialApp( // 创建 MaterialApp 部件
      home: Scaffold( // 创建 Scaffold 部件
        appBar: AppBar( // 创建 AppBar 部件
          title: const Text('Flutter学习'), // 设置标题文本
        ),
        body: const HomeContent(), // 在 body 区域显示 HomeContent 部件
      ),
    );
  }
}

class HomeContent extends StatefulWidget { // 自定义部件:带有状态的复选框部件
  const HomeContent({Key? key}) : super(key: key); // 构造函数

  
  _HomeContentState createState() => _HomeContentState(); // 创建与该部件相关的状态对象
}

class _HomeContentState extends State<HomeContent> { // 与 HomeContent 相关联的状态类
  bool _isChecked = false; // 存储复选框的状态

  
  Widget build(BuildContext context) { // 渲染界面的方法
    return Center( // 创建 Center 部件
      child: Row( // 创建 Row 部件
        mainAxisAlignment: MainAxisAlignment.center, // 设置主轴对齐方式
        children: <Widget>[
          Checkbox( // 创建 Checkbox 部件
            value: _isChecked, // 指定复选框的状态
            onChanged: (value) { // 设置复选框值变化的回调函数
              setState(() { // 通过 setState() 方法更新用户界面
                _isChecked = value!; // 更新 isChecked 的状态值
              });
            },
          ),
          const Text( // 创建文本部件
            '同意协议', // 设置文本内容
            textDirection: TextDirection.ltr, // 设置文本方向
            style: TextStyle(fontSize: 20), // 设置文本样式
          ),
        ],
      ),
    );
  }
}

代码结构

代码的结构分为三部分:

  1. 导入和启动应用程序

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(const MyApp());
    }
    

    在这段代码中,我们首先导入了flutter/material.dart库,这个库包含了许多Material Design 风格的 UI 部件。然后,我们定义了一个名为MyApp的部件,并通过runApp()方法启动了 Flutter 应用程序。runApp方法会将MyApp作为应用程序的根部件进行渲染。

  2. 自定义部件

    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
      
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: const Text('Flutter学习'),
            ),
            body: const HomeContent(),
          ),
        );
      }
    }
    
    class HomeContent extends StatefulWidget {
      const HomeContent({Key? key}) : super(key: key);
    
      
      _HomeContentState createState() => _HomeContentState();
    }
    
    class _HomeContentState extends State<HomeContent> {
      bool _isChecked = false;
    
      
      Widget build(BuildContext context) {
        return Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Checkbox(
                value: _isChecked,
                onChanged: (value) {
                  setState(() {
                    _isChecked = value!;
                  });
                },
              ),
              const Text(
                '同意协议',
                textDirection: TextDirection.ltr,
                style: TextStyle(fontSize: 20),
              ),
            ],
          ),
        );
      }
    }
    

    在这段代码中,我们定义了两个自定义部件 MyAppHomeContent。其中,MyApp 是一个无状态的(stateless) Widget,它返回了一个 MaterialApp 部件,并在 home 属性中指定了应用程序的主页。而HomeContent 部件则是一个带有复选框的 StatefulWidget,它包含了一个复选框和一段文本内容。当用户点击复选框时,该部件的状态就会发生改变,从而刷新界面。

  3. 界面渲染

    
    Widget build(BuildContext context) {
      return MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: const Text('Flutter学习'),
          ),
          body: const HomeContent(),
        ),
      );
    }
    

    这段代码是通过自定义部件来渲染出具体的界面。其中,MaterialApp 部件提供了应用程序的基本结构,包含了许多应用程序所需的功能,例如顶部导航栏、底部标签栏等。而Scaffold 部件则提供了一个基本的页面布局结构,包含了应用程序的主内容区域和底部导航栏等。最后,我们将HomeContent 部件作为Scaffold 部件的主要内容(body)进行渲染,从而实现了带有复选框的用户界面。

总结

整个应用程序代码主要包含三部分:

  1. 导入和启动应用程序:在这部分代码中,我们导入了flutter/material.dart库,然后通过runApp()方法启动了 Flutter 应用程序。
  2. 自定义部件:在这部分代码中,我们定义了两个自定义部件 MyAppHomeContent。其中,MyApp 是应用程序的根部件,它返回了一个 MaterialApp 部件,并在 home 属性中指定了应用程序的主页。而HomeContent 部件则是一个带有复选框的 StatefulWidget,它包含了一个复选框和一段文本内容。当用户点击复选框时,该部件的状态就会发生改变,从而刷新界面。
  3. 界面渲染:在这部分代码中,我们通过自定义部件来渲染出具体的界面。其中,MaterialApp 部件提供了应用程序的基本结构,包含了许多应用程序所需的功能,例如顶部导航栏、底部标签栏等。而Scaffold 部件则提供了一个基本的页面布局结构,包含了应用程序的主内容区域和底部导航栏等。最后,我们将HomeContent 部件作为Scaffold 部件的主要内容(body)进行渲染,从而实现了带有复选框的用户界面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux-2.6.22.6内核poll总结

1.为什么需要poll&#xff0c;其原因是当进行某些操作时&#xff0c;该操作会一直消耗cpu&#xff0c;浪费资源&#xff0c;所以引入poll可以让该进程在指定时间内如果没有结果产生&#xff08;可以是某个操作或者获取数据&#xff09;则进行休眠&#xff0c;这样就会释放cpu。…

【MySQL】数据库基础 ②

✍LIKE 子句 说明&#xff1a; 使用 SELECT 来查询数据&#xff0c; 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。 WHERE 子句中可以使用等号 来设定获取数据的条件&#xff0c;如 "字段(text_title) 值()"。 但是有时候我们需要获取 text_…

Android 神奇的 SpannableStringBuilder

文章目录 前言一、SpannableStringBuilder 是什么&#xff1f;二、使用步骤1.示例代码2.参数对应start&#xff1a;样式生效的开始位置&#xff0c;包括该位置end&#xff1a; 样式结束的位置&#xff0c;不包括该位置flags&#xff1a;取值有如下四个Spannable.SPAN_EXCLUSIVE…

wandb快速上手、使用心得(超好用的Tensorboard高替品)

这里写目录标题 1 wandb介绍2 快速上手3 使用心得3.1 一张图展示两条线3.2 想要科学上网和wandb一起使用&#xff08;离线使用&#xff09;3.3 未完待续 1 wandb介绍 wandb地址&#xff1a;wandb Wandb&#xff08;Weights & Biases&#xff09;是一个用于机器学习实验跟踪…

智慧城市建设电气火灾智慧消防措施 安科瑞 许敏

1、引言 “经检测&#xff0c;发现管辖单位南通王子造纸企业二氧化氯装置发生二级警报&#xff0c;可能引发火灾&#xff0c;请立即出警。”日前&#xff0c;南通消防救援支队大数据平台DCS化工火源预警系统发出警报&#xff0c;大屏幕显示辖区企业南通王子造纸企业出现险情。D…

B站618“杀”疯了?UP主直播带货GMV连年破亿!

众多主流平台已经早早构建出较为完整的直播带货体系&#xff0c;而B站则是从去年双十一才宣布正式加入全平台直播带货&#xff0c;同时上线购物直播专区&#xff0c;到今年618年中购物大促&#xff0c;B站已经在大步向前摸索属于本平台的直播带货阵营。 一直以来B站带着二次元…

TC8:SOMEIPSRV_FORMAT_15-18

SOMEIPSRV_FORMAT_15: Instance ID field of the Type 1 Entry 目的 检查Type 1 Entry(Offer Service)的“Instance ID”字段 测试步骤 DUT CONFIGURE:启动具有下列信息的服务Service ID:SERVICE-ID-1Instance数量:1Tester:客户端-1发送SOME/IP Notification消息Entry T…

后端web开发之maven

这里写目录标题 介绍创建maven项目作用作用1作用2作用3 简介 依赖管理依赖配置依赖传递简介依赖传递的可视化快捷键 排除依赖依赖范围生命周期介绍执行流程 介绍 创建maven项目 注意 maven属于项目一级&#xff0c;所以在创建项目的时候 直接选择maven项目按照步骤创建即可&a…

Java Web基础面试题整理

1、什么是Servlet&#xff1f; 可以从两个方面去看Servlet&#xff1a; a、API&#xff1a;有一个接口servlet&#xff0c;它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。 b、组件&#xff1a;服务器端用来处理客户端请求的组件&#xff0c;需要在we…

【2023,学点儿新Java-12】小结:阶段性复习 | Java学习书籍推荐(小白该读哪类Java书籍?有一定基础后,再去读哪类书籍?)

前情回顾&#xff1a; 【2023&#xff0c;学点儿新Java-11】基础案例练习&#xff1a;输出个人基础信息、输出心形 | Java中 制表符\t 和 换行符\n 的简单练习【2023&#xff0c;学点儿新Java-10】Java17 API文档简介&获取 |详解Java核心机制&#xff1a;JVM |详解Java内存…

【FPGA入门】第六篇、异步串口通信

目录 第一部分、相关知识 1、UART和RS232的区别 2、UART与USART的区别 3、全双工&#xff1f; 4、RS232通信协议 5、波特率 6、如何将外部异步信号变为内部同步信号&#xff1f; 7、什么时间点让FPGA去采集rx线上的数据&#xff1f; 第二部分、串口通信时序图 1、…

OWASP之SSRF服务器伪造请求

文章目录 一、SSRF定义二、形成原因1.提供请求功能2.地址没做限制 三、漏洞危害1.可以对服务器所在内网、本地进行端口扫描&#xff0c;获取一些服务的信息等2.目标网站本地敏感数据的读取3.内外网主机应用程序漏洞的利用4.内外网Web站点漏洞的利用 四、ssrf挖掘1.从WEB功能上寻…

SpringBoot相关知识

SpringBoot知识 1 SpringBoot 介绍及其使用原因 Spring Boot是一个用于创建独立的、基于Java的生产级别的应用程序的框架。它旨在简化Spring应用程序的开发过程&#xff0c;减少开发人员的配置工作&#xff0c;从而提高开发效率。 原因: (1) 简化开发&#xff1a;Spring Boot…

Hadoop(HA)

文章目录 1、HA 概述2、HDFS-HA 集群搭建3、HDFS-HA 核心问题4、HDFS-HA 手动模式4.1 环境准备4.2 规划集群4.3 配置 HDFS-HA 集群4.4 启动 HDFS-HA 集群 5、HDFS-HA 自动模式5.1 HDFS-HA 自动故障转移工作机制5.2 HDFS-HA 自动故障转移的集群规划5.3 配置 HDFS-HA 自动故障转移…

java企业工程项目管理系统平台源码

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统的设计与实现(基础版)

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统设计与实现 一、界面设计1.1安装pyqt51.2创建用户子窗体1.3创建管理员主窗体1.4创建管理员子窗体1.5创建系统登陆界面 二、环境搭建2.1pyqt5工具配置2.2mysql5.7安装 三、编程实现3.1初始化数据库3.2创建用户数据库sdk文件…

从零构建后端项目-配置Shiro+JWT

目录 Shiro和JWT技术 一、Shiro简介 什么是认证&#xff1f; 什么是授权&#xff1f; Shiro靠什么做认证与授权的&#xff1f; 二、JWT简介 JWT可以用在单点登录的系统中 JWT兼容更多的客户端 创建JwtUtil工具类 一、导入依赖库 二、定义密钥和过期时间 三、创…

强大的Kotlin也能搞定,测试利器MockK你不能不知道

目录 前言&#xff1a; 为什么需要MockK 关键字 Mock Kotlin的类时报错 静态方法如何Mock Jmockit MockK使用示例 普通使用 mockkObject mockkStatic mock private method Context Mock 遇到的一些小坑 最后 前言&#xff1a; MockK是一个强大且易于使用的Kotli…

爆肝整理,手机App接口测试大全指南,看这篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 App和Web请求服务…

用prim和kruskal算法求最小生成树问题

最短网络 题目http://ybt.ssoier.cn:8088/problem_show.php?pid1350 #include<bits/stdc.h> using namespace std; const int N110; int w[N][N]; bool st[N]; int dist[N]; int n,res0; void prim() {memset(dist,0x3f,sizeof dist);dist[1]0;//初始化第一个点到自己…