首页 > 其他分享 >Flutter进阶组件(3):SwitchListTile(开关列表项)

Flutter进阶组件(3):SwitchListTile(开关列表项)

时间:2024-12-26 09:42:29浏览次数:8  
标签:const 进阶 title Text value 开关 SwitchListTile Flutter

SwitchListTile是一个包含开关(Switch)的列表项,非常适合用来创建带有标题、副标题以及开关的列表项,常用于设置界面,让用户可以轻松地开启或关闭某个功能。

一、基本使用

SwitchListTile(
  title: const Text('Enable Notifications'),
  value: true, // 开关的初始状态
  onChanged: (bool value) {
    // 开关状态改变时调用的回调
    debugPrint('Enable Notifications is now $value');
  },
)

二、属性

SwitchListTile组件提供了以下属性,以支持各种自定义需求:

  • title: 显示的标题,通常是一个Text Widget。
  • subtitle: 显示的副标题,也可以是一个Text Widget。
  • value: 开关的当前状态(开或关)。
  • onChanged: 当开光状态改变时调用的回调函数,返回开关的新状态。
  • activeColor: 开关打开时的颜色。
  • secondary: 显示在标题旁边的Widget,如图标或图片。
  • isThreeLine: 决定是否显示三行文本,如设置为true,则副标题会换行显示。
  • dense: 是否减少列表项的高度,使文字更紧凑。
  • contentPadding: 控制内边距。

三、基本示例

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    debugShowCheckedModeBanner: false,
    home: SwitchListTileExample(),
  ));
}

class SwitchListTileExample extends StatelessWidget {
  const SwitchListTileExample({super.key});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('SwitchListTile Example'),
      ),
      body: ListView(
        children: <Widget>[
          SwitchListTile(
            title: const Text('Enable Notifications'),
            value: true, // 开关的初始状态
            onChanged: (bool value) {
              // 开关状态改变时调用的回调
              debugPrint('Enable Notifications is now $value');
            },
          ),
        ],
      ),
    );
  }
}

效果图如下所示:

Flutter_switch_A.png


四、高级用法

SwitchListTile可以与图标、副标题等结合使用,创建复杂的列表项:

SwitchListTile(
  title: const Text('Switch with icon and subtitle'),
  subtitle: const Text('This is a subtitle for the switch'),
  secondary: Icon(Icons.report_problem), // 显示在标题旁边的图标
  value: false,
  onChanged: (bool value) {
    // 处理开关状态改变的逻辑
  },
  isThreeLine: true, // 显示三行文本
)

五、与ListView结合使用

SwitchListTile通常与ListView结合使用,创建滚动的开关列表:

ListView(
  children: <Widget>[
    SwitchListTile(
      title: Text('Option 1'),
      value: false,
      onChanged: (bool value) {
        // 处理开关状态改变的逻辑
      },
    ),
    // 更多的SwitchListTile...
  ],
)

六、自定义SwitchListTile

你可以通过设置不同的属性来定制SwitchListTile的外观:

SwitchListTile(
  title: Text('Custom SwitchListTile'),
  subtitle: Text('This is a custom subtitle'),
  value: false,
  onChanged: (bool value) {
    // 处理点击事件
  },
  activeColor: Colors.green, // 开关激活时的颜色
  contentPadding: EdgeInsets.all(12.0), // 自定义内边距
)

标签:const,进阶,title,Text,value,开关,SwitchListTile,Flutter
From: https://www.cnblogs.com/linuxAndMcu/p/18631952

相关文章

  • Flutter进阶组件(2):CheckboxListTile(复选框列表项)
    CheckboxListTile是一个特殊的ListTile,它内嵌了一个复选框(Checkbox)。这使得它非常适合用来创建一个带有标题和可选复选框的列表项,常用于设置界面或需要用户选择多个选项的场景。一、属性CheckboxListTile组件提供了以下属性,以支持各种自定义需求:title:显示的标题,通常是一个Te......
  • Flutter学习笔记:pubspec.yaml
    本文更新于2024-12-15,使用Flutter3.3.3。目录项目结构pubspec.yaml外部依赖库项目结构android/:Android原生目录。app/build.gradlesrc/main/AndroidMainfest.xml:Android重要配置。res/drawable/launch_background.xml:启动页配置。midmap-hdpi/ic_lancher.......
  • harmony_flutter video_trimmer实现视频剪辑
    harmony_fluttervideo_trimmer实现视频剪辑简介videotrimmer是在OpenHarmony环境下,提供视频剪辑能力的三方库安装教程ohpminstall@ohos/videotrimmerOpenHarmonyohpm环境配置等更多内容,请参考如何安装OpenHarmonyohpm包。使用介绍构建VideoTrimmerOption对象:ge......
  • harmony_flutter mvvm架构思想
    harmony_fluttermvvm架构思想写在前面在Flutter中实现MVVM(Model-View-ViewModel)架构是为了将UI(视图)与业务逻辑(模型和视图模型)分离,提高代码的可维护性和可读性。整体架构概述Model:数据层,处理应用程序的业务逻辑和数据管理。View:用户界面层,负责展示数据并接受用户输入。V......
  • Flutter OHOS fluttertpc_app_installer(打开应用商店和安装APP)
    fluttertpc_app_installer打开应用商店和安装APP用法StringandroidAppId='';StringiOSAppId='';StringohosAppId='';AppInstaller.goStore(androidAppId,iOSAppId,ohosAppId); AppInstaller.installApk('/sdcard/apk/app-debug.......
  • Flutter OHOS flutter_keychain(字符串安全存储)
    flutter_keychain一个支持通过Keychain和Keystore支持字符串安全存储的Flutter插件如果您有其他类型想要存储,则需要序列化为UTF-8字符串。使用import'package:flutter_keychain/flutter_keychain.dart';...//Getvaluevarvalue=awaitFlutterKeychain.get(ke......
  • protected修饰符讲解、java中继承的特点-java se进阶 day01
    1.protected权限修饰符的介绍之前在说权限修饰符时候,没有细说protected,今天,我们就来聊聊protected如图,protected修饰符中,“不同包的子类”是我们要理解的我们在不同的包下创建一个Fu类和一个Zi类,然后在Zi类的同一个包中创建一个test类Zi类继承Fu类,然后test不继承,仅用于测试......
  • 方法重写-java se 进阶-day01
    1.方法重写的介绍当子父类中,某方法存在相同的定义(方法名、参数、返回值)时,子类的方法会将父类的方法进行重写操作(覆盖)2.方法重写与方法重载的区别1.方法重载:又称Overload,在同一个类中,方法名相同,参数不同,与返回值无关。其中,参数不同分别为参数类型、参数数量、参数顺序不同2.方......
  • 微信小程序:从基础到进阶的全面指南 (详细版)
    文章目录前言一、基础概念与结构二、核心组件三、组件传值四、生命周期五、事件处理六、数据渲染七、顶级对象以及API八、模块化九、开发工具与调试十、发布流程结语前言随着移动互联网的发展,用户对于移动应用的需求日益增长。为了满足用户快速、......
  • AGI 大模型进阶技术路线
    “AGI大模型进阶技术路线图V5.0”的思维导图。整个图的背景为白色,内容以橙色和黑色字体为主,部分重要节点用红色字体标注。 L1阶段:基础入门与概念了解大模型应用开发极简入门2024适合初学者,包括大模型应用开发的基本概念。例如,介绍常见的开发框架(如Flask、Djang......