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

Flutter系列教程之(3)——简单的APP实现

目录

Material Design样式

FloatActionButton

onPress点击事件

Toast的使用


Material Design样式

先上效果图:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return  new MaterialApp(
      theme: new ThemeData(
        primaryColor: Colors.blue,
        primaryColorDark: Colors.green,
        accentColor: Colors.blueAccent,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Flutter Bar'),
        ),
        body: new Center(
          child: new Text('Hello World'),
        ),
      ),
    );

  }

}

 右边的悬浮按钮是下面添加的,上述代码并没有

解析:

由于我们需要使用Material Design相关的Widget组件或者是图标,所以第一行便是导包,和Java差不多

之后,是一个main方法,用来启动并打开一个APP的Widget

我们可以看到,MyApp其实是一个类,其继承于StatelessWidget,而StatelessWidget这个类从名字就可以看出来,它的父类是一个Widget。

继承StatelessWidget必须要实现一个方法build(),其返回一个Widget对象。

StatelessWidget和StatefulWidget相对应,这个在下篇再进行说明,我们需要创建自定义Widget的话都是直接继承这两个类中的一个即可

Flutter提供了个名为MaterialApp的Widget供开发者快速创建一个Material Design样式的首页,所以我们将此传递相关的参数从而快速创建一个Widget

其中,构造方法可以接受theme home等参数,由于初入门,所以先是简单常用的几个参数,也就是刚才提出的2个参数。

开始之前,记住一个概念,Flutter由一个或多个Widget组成,可以说,所有的对象都是一个Widget

从意思上翻译大家也明白上面的所说的参数是啥意思了,theme是主题色的设置,home则是主体内容,其中,home这个参数都是需要传递一个Widget对象

home: new Scaffold(
	appBar: new AppBar(
	  title: new Text('Flutter Bar'),
	),
	body: new Center(
	  child: new Text('Hello World'),
	),
  ),

可以看到,home参数接收了一个Scaffold的Widget,这个是Flutter提供的脚手架模版,我们只需要设置照着写就可以得到一个简单的Material Design的页面了,如之前的图片所示

FloatActionButton

我们基于上面的页面,再增加个悬浮按钮FloatingActionButton,只需要增加一个floatingActionButton的参数即可,代码如下所示:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return  new MaterialApp(

      title: 'First test flutter app',
      theme: new ThemeData(
        primaryColor: Colors.blue,
        primaryColorDark: Colors.green,
        accentColor: Colors.blueAccent,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Flutter Bar'),
        ),
        body: new Center(
          child: new Text('Hello World'),
        ),
		//点击按钮
        floatingActionButton: FloatingActionButton(
          onPressed: (){},
		  //使用图标
          child: Icon(Icons.add)
        ),
      ),
    );
  }
}

从代码中可以看到创建FloatingActionButton需要两个参数,onPressed和child,onPress是设置点击事件,child则接收一个Widget,这个Widget就是按钮显示的内容

如果没有点击事件,onPressed可以传入null

这里,我是使用了图标,Icon这个类是用来显示图片的Widget,Icons.add是使用了Google官方的Material Design图标中的add图标,也就是图中的加号

onPress点击事件

按钮有了,我们还得设置点击事件,这点与之前的Android一样

在Flutter中,Button的这个Widget(FloatingActionButton也是继承与Button)都是提供了一个onPress的属性,用来接收对应的点击事件

floatingActionButton: FloatingActionButton(
	  onPressed: (){
		  //相关的点击事件逻辑
		  print("点击");
	  },
	  //使用图标
	  child: Icon(Icons.add)
	),

Toast的使用

由于Flutter原生并没有Toast的组件,所以我们得引用第三方的库来实现,Flutter添加依赖是在pubspec.yaml文件中添加即可

fluttertoast: ^7.0.2

如下图所示:

PS:这里顺便推荐一个flutter的开源库网站,可以让大家更为方便地搜索,网址为https://pub.flutter-io.cn

使用:

Fluttertoast.showToast(
	msg: "点击添加",
	toastLength: Toast.LENGTH_SHORT,
	gravity: ToastGravity.BOTTOM,
	backgroundColor: Colors.black,
);

参数名

说明

msg

展示的文字内容

toastLength

时间长短Toast.LENGTH_SHORT、Toast.LENGTH_LONG

gravity

位置(上中下)ToastGravity.TOP、ToastGravity.CENTER、 ToastGravity.BOTTOM

timeInSecForIos

展示时长,仅iOS有效

bgcolor

背景颜色

textcolor

文字颜色

fontSize

文字大小

 

相关文章:

  • qtcreator上使用opencv报错
  • 水利工程安全包括哪几个方面
  • MacOS 终端选型
  • 实现分布式限流开源项目
  • 服务器硬件老化导致性能下降的排查与优化
  • 如何基于PyTorch做二次开发
  • 大白话React第六章深入学习 React 高级特性及生态
  • GGUF 文件格式全解析
  • 问题:undefined reference to `pthread_mutexattr_init‘
  • Vue的父子组件通信问题
  • vsCode下载、安装、推荐插件
  • 90.奇妙货币交易问题|Marscode AI刷题
  • 在Linux、Windows和macOS上部署DeepSeek模型的最低配置要求
  • 大白话3Vuex 是什么,具体怎么用?
  • 349. 两个数组的交集
  • django:更新页面但未生效
  • 基于JavaWeb开发的高校食堂点餐系统
  • 国内访问Github的四种方法(2025版)
  • 【YOLOv3】 源码总体结构分析
  • Linux部署dnsmasq软件
  • 网站建设程序员提成/seo站长工具下载
  • 做网站看/爱站网关键词挖掘工具熊猫
  • 镇江网站建设网站/卖网站链接
  • wordpress修改文章字体大小/网站seo李守洪排名大师
  • 免费建设个人手机网站/北京官网seo收费
  • html5产品展示网站模板/运营培训班