当前位置: 首页 > news >正文

Flutter循序渐进==>基金管理APP首页

目录

查看版本

组件

组件源码学习

做个基金APP首页源代码

效果


查看版本

组件

组件的本质就是个类。

import 'package:flutter/material.dart';void main() {runApp(const OurFirstApp(),);
}
OurFirstApp()实例化,就是给runApp用的,runApp就是运行实例化的类OurFirstApp。该类又继承了StatelessWidget。 extends就是继承的意思class OurFirstApp extends StatelessWidget {const OurFirstApp({Key? key}) : super(key:key);build()传递对象context,返回Center widget@overrideWidget build(BuildContext context) {return Center(child: Container(margin: const EdgeInsets.all(5),child: const Text('贪多嚼不烂,心平气和的一行一行的敲代码!',textDirection: TextDirection.ltr,  widget Text有个命名参数textDirection规定文字方向。
)));}
}

组件源码学习

还有什么比组件源码更好的教材?上面红框的内容,第一项为类型,?可以为空,data表示关键字功能。

做个基金APP首页源代码

import 'package:flutter/material.dart';void main() {runApp(const MyFundsApp(),);
}class MyFundsApp extends StatelessWidget {const MyFundsApp({Key? key}) : super(key:key);@overrideWidget build(BuildContext context) {return const MaterialApp(title: '安远基金',debugShowCheckedModeBanner: false,home: AnyuanFundsHome(),);}
}class AnyuanFundsHome extends StatelessWidget {const AnyuanFundsHome({Key? key}):super(key:key);@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('债基投资明细'),) ,body: const AnyuanFundsBody(),);}
}class AnyuanFundsBody extends StatelessWidget {const AnyuanFundsBody({Key? key}):super(key: key);@overrideWidget build(BuildContext context) {return Column(children: [Center(child: Row(children: [Container(padding: const EdgeInsets.all(10),child: const Text('ID',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('名称',textAlign: TextAlign.left,),),const Expanded(child: Text('投资金额',textAlign: TextAlign.center,)),Container(padding: const EdgeInsets.all(10),child: const Text('收益',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('星级',textAlign: TextAlign.left,),),],),),Center(child: Row(children: [Container(padding: const EdgeInsets.all(10),child: const Text('006961',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('南方中债7-10年指数A',textAlign: TextAlign.left,),),const Expanded(child: Text('22000',textAlign: TextAlign.center,)),Container(padding: const EdgeInsets.all(10),child: const Text('186.02',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('*****',textAlign: TextAlign.left,),),],),),Center(child: Row(children: [Container(padding: const EdgeInsets.all(10),child: const Text('006493',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('南方中债3-5年指数A',textAlign: TextAlign.left,),),const Expanded(child: Text('3500',textAlign: TextAlign.center,)),Container(padding: const EdgeInsets.all(10),child: const Text('32.93',textAlign: TextAlign.left,),),Container(padding: const EdgeInsets.all(10),child: const Text('****',textAlign: TextAlign.left,),),],),),],);}}

效果

换种模块化思维

效果图

import 'package:flutter/material.dart';void main() {runApp(const MyFundsApp(),);
}class MyFundsApp extends StatelessWidget {const MyFundsApp({Key? key}) : super(key:key);@overrideWidget build(BuildContext context) {return const MaterialApp(title: '安远基金',debugShowCheckedModeBanner: false,home: AnyuanFundsHome(),);}
}class AnyuanFundsHome extends StatelessWidget {const AnyuanFundsHome({Key? key}):super(key:key);@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('债基投资明细'),backgroundColor: Colors.blueAccent,) ,body: const AnyuanFundsBody(),);}
}class AnyuanFundsBody extends StatelessWidget {const AnyuanFundsBody({Key? key}):super(key: key);@overrideWidget build(BuildContext context) {return Column(children: const [RowOne(),RowTwo(),RowThree(),],);}
}class ModelContainer extends StatelessWidget {const ModelContainer({Key? key, required this.modelText,}): super(key: key);final Text modelText;@overrideWidget build(BuildContext context) {return Container(padding: const EdgeInsets.all(10),color: Colors.amberAccent,child: modelText,);}
}class RowOne extends StatelessWidget {const RowOne({Key? key,}): super(key: key);@overrideWidget build(BuildContext context) {return Center(child: Row(children: const [ModelContainer(modelText: Text('ID')),ModelContainer(modelText: Text('名称')),ModelContainer(modelText: Text('投资金额')),ModelContainer(modelText: Text('收益')),ModelContainer(modelText: Text('星级')),],),);}
}class RowTwo extends StatelessWidget {const RowTwo({Key? key,}): super(key: key);@overrideWidget build(BuildContext context) {return Center(child: Row(children: const [ModelContainer(modelText: Text('006961')),ModelContainer(modelText: Text('中债7-10')),ModelContainer(modelText: Text('22000')),ModelContainer(modelText: Text('186.02')),ModelContainer(modelText: Text('*****')),],),);}
}class RowThree extends StatelessWidget {const RowThree({Key? key,}): super(key: key);@overrideWidget build(BuildContext context) {return Center(child: Row(children: const [ModelContainer(modelText: Text('006493')),ModelContainer(modelText: Text('中债3-5')),ModelContainer(modelText: Text('3500')),ModelContainer(modelText: Text('32.93')),ModelContainer(modelText: Text('****')),],),);}
}

相关文章:

  • JAVA学习-练习试用Java实现“编辑距离”
  • 数据驱动下的SaaS渠道精细化运营:提升ROI的实战指南
  • 【Hive实战】Linux磁盘空间不足导致HiveSession创建失败
  • 技术成神之路:设计模式(二)建造者模式
  • 第二节:如何使用thymeleaf渲染html(自学Spring boot 3.x的第一天)
  • LeetCode 每日一题 2024/6/24-2024/6/30
  • 统计学习原理中的“数据是独立同分布产生的”如何理解
  • 极客时间 - 《Linux 性能优化实战》
  • [C++]——继承 深继承
  • 震惊!张宇25版高数18讲发布,656页惹争议!
  • Spring 6.1.10版本源码编译
  • Pycharm一些问题解决办法
  • UE5 02-给物体一个扭矩力
  • DolphinScheduler部署安装or基础介绍(一)
  • WPF自定义模板--TextBox/Password
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Create React App 使用
  • eclipse(luna)创建web工程
  • iOS 系统授权开发
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript-Array类型
  • Linux Process Manage
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • MySQL-事务管理(基础)
  • nginx 配置多 域名 + 多 https
  • Python进阶细节
  • Python学习笔记 字符串拼接
  • Sublime Text 2/3 绑定Eclipse快捷键
  • SwizzleMethod 黑魔法
  • Vue小说阅读器(仿追书神器)
  • vue中实现单选
  • 服务器之间,相同帐号,实现免密钥登录
  • 设计模式(12)迭代器模式(讲解+应用)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 携程小程序初体验
  • 一个JAVA程序员成长之路分享
  • 赢得Docker挑战最佳实践
  • 在Unity中实现一个简单的消息管理器
  • ionic异常记录
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​Linux·i2c驱动架构​
  • ​Spring Boot 分片上传文件
  • # 职场生活之道:善于团结
  • ###C语言程序设计-----C语言学习(3)#
  • #、%和$符号在OGNL表达式中经常出现
  • #1014 : Trie树
  • #if和#ifdef区别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #图像处理
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例