Flutter 开发学习笔记(3):第三方UI库的引入

文章目录

  • 前言
  • 初始化程序
  • Icon导入
    • 如何导入
  • Toast消息提示框引入
    • 简单封装
    • 简单使用
  • Charts图表导入
    • 新建pages文件夹存放page
    • 简单代码
    • 实现效果
  • 总结

前言

Flutter已经发布了有10年了,生态也算比较完善了。用于安卓程序开发应该是非常的方便。我们这里就接入一些简单的Flutter的UI即可

初始化程序

我们就用最简单的初始项目即可,保证你的项目能够运行

在这里插入图片描述

Icon导入

Flutter是由谷歌开发的跨平台程序,而谷歌本身就有一套自己的UI库,直接使用即可,基本够用了,本体应该有3000多个IOCN。

Material Icon 官方网站

在这里插入图片描述

如何导入

比如我们要导入【search】这个ICON,我们就要Icon进行添加。

Icon(Icons.search)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Toast消息提示框引入

在pubspec.yml中添加

dependencies:fluttertoast: ^8.2.4

简单封装

在这里插入图片描述

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';class ToastUtils {static void shotToast(String message, [//方括号里是可选参数,可以不填,等号右边是默认值Toast time = Toast.LENGTH_SHORT,ToastGravity gravity = ToastGravity.CENTER,Color backColor = Colors.black45,Color textColor = Colors.white,]) {Fluttertoast.showToast(msg: message,//消息内容toastLength: time,//停留时间gravity: gravity,//出现的位置timeInSecForIosWeb: 1,backgroundColor: backColor,//背景色textColor: textColor,//前景色fontSize: 16.0); //文本字号}
}

简单使用

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'utils/ToastUtils.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});// This widget is the root of your application.@overrideWidget build(BuildContext context) {const String appTitle = 'Flutter layout demo';return MaterialApp(title: appTitle,home: Scaffold(appBar: AppBar(title: const Text(appTitle),),body: Center(child: ElevatedButton(onPressed: () {debugPrint('hello flutter');ToastUtils.shotToast('hello flutter');},child: const Text('hello flutter')),),),);}
}

在这里插入图片描述

Charts图表导入

这个直接用官方的即可

【Flutter】图表显示charts_flutter折线图/柱状图/饼状图等

新建pages文件夹存放page

在这里插入图片描述

简单代码

import 'dart:math';import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;class ChartTestPage extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("chart_flutter")),body: Column(children: [Container(height: 240, child: _simpleLine())]),);}Widget _simpleLine() {var random = Random();var data = [LinearSales(0, random.nextInt(100)),LinearSales(1, random.nextInt(100)),LinearSales(2, random.nextInt(100)),LinearSales(3, random.nextInt(100)),];var seriesList = [charts.Series<LinearSales, int>(id: 'Sales',colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,domainFn: (LinearSales sales, _) => sales.year,measureFn: (LinearSales sales, _) => sales.sales,data: data,)];return charts.LineChart(seriesList, animate: true);}
}class LinearSales {final int year;final int sales;LinearSales(this.year, this.sales);
}

实现效果

import 'package:flutter/material.dart';
import 'package:flutter_widget_test/pages/ChartTestPage.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'utils/ToastUtils.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});// This widget is the root of your application.@overrideWidget build(BuildContext context) {const String appTitle = 'Flutter layout demo';return MaterialApp(title: appTitle,home: Scaffold(appBar: AppBar(title: const Text(appTitle),),body: Center(child: ElevatedButton(onPressed: () {debugPrint('hello flutter');ToastUtils.shotToast('hello flutter');},child: ChartTestPage()),),),);}
}

在这里插入图片描述

总结

Flutter 的生态还是可以的,就是教程相对来说比较的晦涩难懂。主要是Dark语法挺C# 的,而且在return里面写一大堆代码,这个我不喜欢。我的代码习惯是先将返回值求出来在放到retrun里面。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D怎么看模型内部结构---模大狮模型网

在3D建模和设计过程中&#xff0c;了解模型的内部结构是十分重要的。这不仅有助于审美和设计&#xff0c;还能够帮助我们更好地理解模型的构造和特性。模大狮将介绍一些方法和技巧&#xff0c;帮助您探索3D模型的内部结构。 一、使用切片工具 切片模型&#xff1a;通过切片工具…

Polardb MySQL 产品架构及特性

一、产品概述; 1、产品族 参考&#xff1a;https://edu.aliyun.com/course/3121700/lesson/341900000?spma2cwt.28120015.3121700.6.166d71c1wwp2px 2、polardb mysql架构优势 1&#xff09;大容量高弹性&#xff1a;最大支持存储100T&#xff0c;最高超1000核CPU&#xff0…

ensp华为AC+AP上线配置

AR1配置&#xff1a; <Huawei>system-view # 进入系统视图<Huawei>sysname R1 # 设备重命名[R1]dhcp enable # 开启DHCP功能[R1]interface GigabitEthernet0/0/0 # 进入接口 [R1-GigabitEthernet0/0/0]ip address 192.168.0.1 23 # 配置接口地址 [R1-GigabitE…

BGP-安全特性、扩展特性、增强特性

BGP-安全特性&#xff0c;扩展特性 BGP路由反射器和联盟的比较 反射器 联盟 不需要更改现有的网络拓扑&#xff0c;兼容性号 需要修改逻辑拓扑 配置方便&#xff0c;客户机不知道自己是客户机 所有设备需要重新进行配置&#xff0c;且所有设备必须支持联盟功能 集群与集群…

HBase(超级无敌详细PROMAX讲解版)

简介 概述 图-1 HBase图标 HBase原本是由Yahoo!公司开发的后来贡献给了Apache的一套开源的、基于Hadoop的、分布式的、可扩展的非关系型数据库(Non-Relational Database)&#xff0c;因此HBase不支持SQL(非关系型数据库基本上都不支持SQL)&#xff0c;而是提供了一套单独的命…

深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度

看这篇前请先把我上一篇了解一下&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 前言&#xff1a; 相信很多学习数据结构的人&#xff0c;都会遇到一种情况&#xff0c;就是明明最一开始学习就学习了时间复杂度&#xff0c;但是在后期…

数据仓库实践

什么是数据仓库&#xff1f; 数据仓库是一个用于存储大量数据并支持数据分析与报告的系统。它通常用于集成来自不同来源的数据&#xff0c;提供一个统一的视图&#xff0c;以便进行更深入的分析和决策。 数据仓库的主要优势&#xff1f; 决策支持&#xff1a;为企业决策提供可靠…

MegaSeg Pro for Mac v6.3.1 注册激活版 音视频DJ混音工具

MegaSeg Pro for Mac是一款专业的DJ和广播自动化软件&#xff0c;旨在为音乐专业人士提供强大的音乐播放和演播功能。这款软件具有多种功能&#xff0c;包括强大的音乐库管理&#xff0c;支持导入和组织大量音乐文件&#xff0c;可以轻松管理你的音乐收藏。它支持广泛的音频格式…

Java设计之道:色即是空,空即是色

0.引子 我们的这个世界上&#xff0c;存在这么一种东西&#xff1a; 第一&#xff1a;它不占据任何3D之体积&#xff0c;即它没有Volume第二&#xff1a;它也不占据任何2D之面积&#xff0c;即它没有Area第三&#xff1a;它也不占据任何1D之长度&#xff0c;即它没有Length 总…

华为审核被拒提示: 您的应用存在(最近任务列表隐藏风险活动)的行为,不符合华为应用市场审核标准

应用审核意见&#xff1a; 您的应用存在&#xff08;最近任务列表隐藏风险活动&#xff09;的行为&#xff0c;不符合华为应用市场审核标准。 修改建议&#xff1a;请参考测试结果进行修改。 请参考《审核指南》第2.19相关审核要求&#xff1a;https://developer.huawei.com/c…

37.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码&#xff1a; import FaultLogger from ohos.faultL…

element-ui badge 组件源码分享

今日简单分享 badge 组件的源码实现&#xff0c;主要从以下两个方面&#xff1a; 1、badge 组件页面结构 2、badge 组件属性 一、badge 组件页面结构 二、badge 组件属性 补充几个标签的用途&#xff1a; sub&#xff1a;下标、sup&#xff1a;上标、var 变量 代码如下&am…