flutter 非常用组件整理 第二篇

flutter 非常用组件整理 第二篇

视频

https://youtu.be/fS_4ZxJvaX0

https://www.bilibili.com/video/BV1jS421R7vJ/

前言

原文 https://ducafecat.com/blog/lesser-known-flutter-widgets-02

本文是Flutter非常用组件第二篇,从开发者的视角出发,精选并深入剖析了AboutDialog、AnimatedGrid、Badge等鲜为人知却功能强大的隐藏组件,为读者提供了一份全面的Flutter UI组件使用指南。无论您是初学者还是有经验的开发者,相信本文都能为您的Flutter项目注入新的活力,助力打造出色的应用界面。

Flutter,UI组件,界面设计,隐藏组件,高级组件,应用开发

参考

  • https://docs.flutter.dev/ui/widgets

正文

AboutDialog

AboutDialog 组件用于显示应用程序的"关于"对话框。它通常包含应用程序的名称、版本、版权信息以及其他相关细节。让我们来看一个使用 AboutDialog 的例子:

import 'package:flutter/material.dart';

class WidgetPage extends StatefulWidget {
   
   
  const WidgetPage({
   
   super.key});

  
  State<WidgetPage> createState() => _WidgetPageState();
}

class _WidgetPageState extends State<WidgetPage> {
   
   
  Widget _mainView() {
   
   
    return Center(
      child: Column(
        children: [
          IconButton(
            icon: const Icon(Icons.info),
            onPressed: () {
   
   
              showAboutDialog(
                context: context,
                applicationName: '猫哥App',
                applicationVersion: '1.0.0',
                applicationIcon: Image.asset(
                  'assets/app_icon.png',
                  width: 100,
                ),
                applicationLegalese: '© 2024 Ducafecat. All rights reserved.',
              );
            },
          )
        ],
      ),
    );
  }

  
  Widget build(BuildContext context) {
   
   
    return Scaffold(
      appBar: AppBar(
        title: const Text('非常用组件'),
      ),
      body: _mainView(),
    );
  }
}

showAboutDialog

点击后可以查看应用包使用详情,还是很有用的。

App Licenses

在这个例子中,我们创建了一个简单的 Flutter 应用程序,包含一个 AppBar 和一个居中的文本。在 AppBar 的操作图标中,我们添加了一个 IconButton,当点击时会显示 AboutDialog。

showAboutDialog() 函数用于显示 AboutDialog。我们为其提供了以下属性:

  • applicationName: 应用程序的名称
  • applicationVersion: 应用程序的版本号
  • applicationIcon: 应用程序的图标
  • applicationLegalese: 应用程序的版权信息

当用户点击 AppBar 上的信息图标时,AboutDialog 将显示应用程序的基本信息。这种对话框通常用于向用户提供有关应用程序的更多详细信息。

AboutListTile

AboutListTile 是一个 ListTile 组件的特殊版本,用于在应用程序的设置或信息页面上显示应用程序的"关于"信息。它结合了 AboutDialog 的功能,并将其集成到一个可以轻松添加到 ListView 中的 ListTile 小部件中。

下面是一个使用 AboutListTile 的例子:

import 'package:flutter/material.dart';

class WidgetPage extends StatefulWidget {
   
   
  const WidgetPage({
   
   super.key});

  
  State<WidgetPage> createState() => _WidgetPageState();
}

class _WidgetPageState extends State<WidgetPage> {
   
   
  Widget _mainView() {
   
   
    return ListView(
      children: [
        AboutListTile(
          icon: Image.asset(
            'assets/app_icon.png',
            width: 100,
          ),
          applicationName: '猫哥App',
          applicationVersion: '1.0.0',
          applicationIcon: Image.asset(
            'assets/app_icon.png',
            width: 100,
          ),
          applicationLegalese: '© 2024 Ducafecat. All rights reserved.',
          aboutBoxChildren: const [
            Text('This is a sample Flutter app.'),
            SizedBox(height: 8.0),
            Text('Developed by My Company.'),
          ],
        ),
        ListTile(
          title: const Text('Privacy Policy'),
          onTap: () {
   
   
            // Navigate to privacy policy page
          },
        ),
        ListTile(
          title: const Text('Terms of Service'),
          onTap: () {
   
   
            // Navigate to terms of service page
          },
        ),
      ],
    );
  }

  
  Widget build(BuildContext context) {
   
   
    return Scaffold(
      appBar: AppBar(
        title: const Text('非常用组件'),
      ),
      body: _mainView(),
    );
  }
}

AboutListTile

点击后打开版本模式框

AboutDialog

在这个例子中,我们在 SettingsPage 的 ListView 中使用了 AboutListTile 组件。与 AboutDialog 不同,AboutListTile 直接集成到 ListTile 中,可以轻松地添加到 ListView 中。

我们为 AboutListTile 提供了以下属性:

  • icon: 应用程序的图标
  • applicationName: 应用程序的名称
  • applicationVersion: 应用程序的版本号
  • applicationIcon: 应用程序的图标 (与 icon 属性不同)
  • applicationLegalese: 应用程序的版权信息
  • aboutBoxChildren: 可以添加到 AboutDialog 中的额外 Widget

当用户点击 AboutListTile 时,它会弹出一个 AboutDialog,其中包含应用程序的基本信息和自定义的 aboutBoxChildren 部分。

这种方式可以让您轻松地在设置页面或信息页面中添加应用程序的"关于"信息,为用户提供更好的体验。

AnimatedGrid

AnimatedGrid 是 Flutter 提供的一个强大的组件,用于创建可滚动的网格布局,并在添加、删除或重新排序项目时提供动画效果。它通常用于构建动态和交互性强的列表或网格界面。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值