flutter基础入门教程(Dart语法+UI布局+页面路由+后端连接)

这篇具有很好参考价值的文章主要介绍了flutter基础入门教程(Dart语法+UI布局+页面路由+后端连接)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、环境安装

  • 1基础安装步骤教程
    Android Studio安装与配置
    https://juejin.cn/post/6844904054569582605
    安装Android Studio前,需要先选择安装Java环境,Java需要到Oracle官网上下载安装,需要注册一个Oracle账号。
    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
    Windows 10 配置Java 环境变量
    https://www.runoob.com/w3cnote/windows10-java-setup.html
    https://blog.csdn.net/qq_40670946/article/details/90200364
    Flutter安装诊断
    https://juejin.cn/post/6844904054599106568#doctor
    Flutter doctor 问题
    https://www.cnblogs.com/magic-world/p/14481107.html
    flutter 环境配置 Android sdkmanager tool not found(当安卓sdk目录没有tools文件夹用此解决方案)
    https://blog.csdn.net/qq_39849535/article/details/104961066

  • 2全程安装步骤教程
    win10配置Androidstudio+flutter移动端开发环境
    https://gwj1314.blog.csdn.net/article/details/124556246

  • 3超级无敌sb报错配置教程
    环境配置之flutter与Android Studio之间的爱恨情仇(上万字与数十种报错的解决方案)
    https://gwj1314.blog.csdn.net/article/details/125138267

2、Dart语言基础

  • dart与flutter的关系,就好比js与vue,react,native之间的关系。
  • 在跨平台开领域被 JS ⼀统天下的今天,Dart 语⾔的出现⽆疑是⼀股清流。
  • Dart 属于是强类型语⾔ ,但可以⽤ var 来声明变量
  • Dart 中 number 类型分为 int 和 double ,其中 java 中的 long 对应的也是
    Dart 中的 int 类型,Dart 中没有 float 类型
  • Dart 下只有 bool 型可以⽤于 if 等判断,不同于 JS 这种使⽤⽅式是不合法的
    var g = “null”; if(g){}
  • Dart 中,switch ⽀持 String 类型
  • Dart 中 final 和 const 表示常量,⽐如 final name = ‘GSY’; const value=
    1000000;
  • Dart 下的数值,在作为字符串使⽤时,是需要显式指定的。⽐如: int i = 0;
    print(“aaaa” + i); 这样并不⽀持,需要 print(“aaaa” + i.toString());

3、flutter UI基础

  • Flutter Widget
    在 Flutter 中⼀切的显示都是 Widget ,Widget 是⼀切的基础,利⽤响应式模式进⾏渲染。
    Widget 分为 有状态 和 ⽆状态 两种,在 Flutter 中每个⻚⾯都是⼀帧,⽆状态就是保持在那⼀帧,⽽有状态的 Widget 当数据更新时,其实是创建了新的 Widget,只是 State 实现了跨帧的数据同步保存。
    ⽆状态StatelessWidget
    有状态StatefulWidget

  • Flutter 布局
    Flutter 中拥有需要将近30种内置的 布局Widget,其中常⽤有 Container、Padding、Center、Flex、Stack、Row、Column、ListView 等,
    flutter基础教程,# 前端开发,flutter,ui,android

  • Flutter ⻚⾯
    Flutter 中除了布局的 Widget,还有交互显示的 Widget 和完整⻚⾯呈现的Widget,其中常⻅的有 MaterialApp、Scaffold、Appbar、Text、Image、FlatButton等,下⾯简单介绍这些 Wdiget,并完成⼀个⻚⾯。
    flutter基础教程,# 前端开发,flutter,ui,android

4、flutter 路由跳转

在 Flutter 中想要实现页面间的跳转和传值的话,离不开两种路由:

  • 基本路由(静态路由)
  • 命名式路由(动态路由)

基本路由(静态路由)

  • 使用push跳到指定的页面,然后再使用pop回到原来的页面
  • 不过当你跳转过去的时候,默认会有一个返回的箭头按钮,点击就可以返回
  • Navigator是一个路由管理的组件,它提供了打开和退出路由页方法。Navigator通过一个栈来管理活动路由集合。通常当前屏幕显示的页面就是栈顶的路由。Navigator提供了一系列方法来管理路由栈。
  • 跳转页面
    RaisedButton(
    child: Text(‘跳到详情页面’),
    onPressed: (){
    //跳转页面
    Navigator.of(context).push(
    MaterialPageRoute(
    //没有传值
    builder: (context)=>Detail()
    )
    );
    },
  • 还可以传入参数
    //跳转页面
    Navigator.of(context).push(
    MaterialPageRoute(
    //传值
    builder: (context)=>Detail(Test:‘我是参数’)
    //没传值
    //builder: (context)=>Detail()
    )
    );

命名式路由

  • 类似于 Vue 中的路由
  • 新建了几个页面Main.dart、Page1.dart、Page1.dart和Page3.dart
    //定义路由
    routes: {
    //需要使用context指定上下文
    ‘/page1’: (context) => Page1(),
    ‘/page2’: (context) => Page2(),
    ‘/page3’: (context) => Page3(),
    },
  • 然后调用
    //定义按钮
    RaisedButton(
    child: Text(“跳转到Page1”),
    onPressed: () {
    //需要使用pushNamed方法
    Navigator.pushNamed(context, “/page1”);
    },
    ),
    SizedBox(height: 20),
    RaisedButton(
    child: Text(“跳转到Page2”),
    onPressed: () {
    Navigator.pushNamed(context, “/page2”);
    },
    ),

5、后端http基础

  • 在Flutter中进行网络请求通常使用http和dio来处理。http是dart开发的多平台网络请求,而dio是flutter中文社区开发的。

  • 使用http(get,post)
    import ‘package:http/http.dart’ as http;
    var url = ‘https://example.com/whatsit/create’;
    var response = await http.post(url, body: {‘name’: ‘doodle’, ‘color’: ‘blue’});
    print(‘Response status: ${response.statusCode}’);
    print(‘Response body: ${response.body}’);

  • json数据处理
    可以使用 dart:convert手动序列化JSON
    通过调用JSON.decode方法来解码JSON ,使用JSON字符串作为参数。
    JSON.decode()仅返回一个Map<String, dynamic>,这意味着我们直到运行时才知道值的类型。
    在小项目中,也可以直接List=(get到的数据),然后显示的时候调用该List即可。

  • 文件上传
    import ‘package:http/http.dart’;
    _uploadFile(String filePath) async{
    String url = “http://39.106.158.176:9010/user/upload_headpic?uid=725304943665217536&token=1”;
    print(“YM------->上传的路径:$url”);
    var uri = Uri.parse(url);
    var request = new MultipartRequest(“POST”,uri);
    var multipartFile = await MultipartFile.fromPath(“headpic”,filePath);
    request.files.add(multipartFile);
    StreamedResponse response = await request.send();

参考资料

Github

  • gsy_github_app_flutter
  • Flutter豆瓣客户端 全网最100%还原豆瓣客户端。
  • alibaba/flutter-go: 包含 flutter 常用 140+ 组件
  • Flutter 练习项目:https://github.com/simplezhli/flutter_deer
  • wanandroid:https://github.com/ngu2008/wanandroid
  • novel-fpg: 小说开源项目(py+go):https://github.com/black-currant/novel-fpg
  • 高德地图flutter定位组件:https://github.com/best-flutter/flutter_amap_location
  • Johnson8888/learn_flutter

环境报错

  • Flutter中没有为类MyApp错误定义方法’setState’ - Thinbug
  • 升级 pre 1.12 Android 项目 · flutter/flutter Wiki

功能实现(博客文章)

  • Flutter学习笔记(二)登陆注册界面的实现_我在拉我的博客-CSDN博客_flutter登录注册
  • flutter学习三:实现登录界面,登录成功后跳转到首页,从我的界面退出登录_週莫的博客-CSDN博客_flutter login
  • Web 开发简介 | 白月黑羽
  • 【Flutter 3-1】Flutter进阶教程——底部导航栏BottomNavigationBar使用 - SegmentFault 思否
  • flutter text 最大长度_超详细!关于Flutter文本组件Widget的全面解读_weixin_39632728的博客-CSDN博客
  • Flutter开发入门 - 掘金
  • 【老孟Flutter】强大的空安全 - 云+社区 - 腾讯云
  • 路由:https://juejin.cn/post/6844903950345306125

网课视频

  • Dart Flutter入门实战视频教程-大地老师【2022】_哔哩哔哩_bilibili

  • Dart Flutter教程_Dart Flutter3.x入门实战视频教程-第15讲以后是Flutter教程-2022年3月更新_哔哩哔哩_bilibili

  • 2021Flutter从零到app上架_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-779703.html

到了这里,关于flutter基础入门教程(Dart语法+UI布局+页面路由+后端连接)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

    书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的

    2024年01月20日
    浏览(46)
  • Qt入门教程【Core篇】Layout布局(布局管理器、手动布局)

    😈 「CSDN主页」 :传送门 😈 「Bilibil首页」 :传送门 😈 「网易云课堂」 :传送门 😈 「CSDN学院」 :传送门 😈 「51CTO学院」 :传送门 😈 「本文的内容」 :Qt布局指南 😈 「动动你的小手」 : 点赞 👍 收藏 ⭐️ 评论 📝 界面开发首先要对整个界面进行布局,使窗体上

    2023年04月18日
    浏览(61)
  • Python入门教程 - 基本语法 (一)

    目录 一、注释 二、Python的六种数据类型 三、字符串、数字 控制台输出练习 四、变量及基本运算 五、type()语句查看数据的类型 六、字符串的3种不同定义方式 七、数据类型之间的转换 八、标识符命名规则规范 九、算数运算符 十、赋值运算符 十一、字符串扩展 11.1 转义字

    2024年02月10日
    浏览(25)
  • Maven入门教程(三):Maven语法

    视频教程:Maven保姆级教程 Maven入门教程(一):安装Maven环境 Maven入门教程(二):idea/Eclipse使用Maven Maven入门教程(三):Maven语法 Maven入门教程(四):Nexus私服 Maven入门教程(五):自定义脚手架 pom.xml是maven的核心配置文件,在pom.xml中可以定义工程的依赖关系,和引用jar包的信息。

    2024年02月10日
    浏览(25)
  • [前端系列第2弹]CSS入门教程:从零开始学习Web页面的样式和布局

    在这篇文章中,我将介绍CSS的基本概念、语法、选择器、属性和值,以及如何使用它们来定义Web页面的外观和布局。还将给一些简单而实用的例子,可以跟着我一步一步地编写自己的CSS样式表。 目录 一、什么是CSS 二、CSS的语法 三、CSS的选择器 四、CSS的属性和值 (一)颜色

    2024年02月13日
    浏览(31)
  • Flutter入门教程(一),2023最新版包含安装,初始化!简单易懂!

    首先,在一切的开始之前我们来介绍一下什么是Flutter,Flutter 是一个由 Google 开发的开源移动应用程序开发框架,可以让开发者使用单一代码库构建高质量的、高性能的 Android 和 iOS 应用程序。Flutter 的主要优势之一是其快速的开发周期,因为它使用了热重载技术,这意味着开

    2024年02月16日
    浏览(43)
  • Odoo17入门教程第六章 UI

    现在我们已经创建了新模型及其 相应的,是时候了 与用户界面交互。 在本章结束时,我们将创建几个菜单以访问默认列表 和窗体视图。 参考 :与此主题相关的文档可以在数据文件中找到。 在第五章:安全性-简介中,我们通过 CSV 文件添加了数据。CSV 当要加载的数据具有

    2024年04月23日
    浏览(34)
  • 【Python】pyqt5入门教程之第一个UI界面

    1.pyqt5工具安装 (1)使用pip工具安装PyQt5工具: (2)安装Qt Designer图形界面开发工具: 安装完成后所在路径 (3)安装QtDesigner 安装完成后所在路径 designer.exe路径 启动QtDesigner 2.第一个QT窗口程序 Pycharm配置 找到py文件,右键External Tool — QTDesigner—就可以启动 QTDesigner .ui文件转换

    2024年02月15日
    浏览(33)
  • 无涯教程-Flutter - Dart简介

    Dart是一种开源通用编程语言,它最初是由Google开发的, Dart是一种具有C样式语法的面向对象的语言,它支持诸如接口,类之类的编程概念,与其他编程语言不同,Dart不支持数组, Dart集合可用于复制数据结构,例如数组,泛型和可选类型。 以下代码显示了一个简单的Dart程序

    2024年02月10日
    浏览(38)
  • Flutter系列文章-Flutter环境搭建和Dart基础

    Flutter是Google推出的一个开源的、高性能的移动应用开发框架,可以用一套代码库开发Android和iOS应用。Dart则是Flutter所使用的编程语言。让我们来看看如何搭建Flutter开发环境,并了解Dart语言的基础知识。 1. 安装Flutter SDK 首先,访问Flutter官网下载Flutter SDK。选择适合你操作系统

    2024年02月15日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包