【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)进行渲染,从而实现了带有复选框的用户界面。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Muuuzi丶

您的鼓励是我创作的无限动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值