【第四章 flutter学习之flutter基础组件】

news2024/12/24 9:51:39

文章目录

  • 一、目录结构
  • 二、创建一个flutter项目
  • 三、创建自定义组件
  • 四、Container组件 就是div
        • alignment 内容对齐方式
        • decoration 类似border 为BoxDecoration的类
  • 五、Text属性
  • 六、image组件
  • 六、icon组件
  • 总结、

一、目录结构

在这里插入图片描述
android、ios各自平台的资源文件
lib 项目目录
linux macos PC平台资源文件
web web平台资源文件
其他的基本上是一些配置文件
pubspec.yaml 配置文件类似vue中的json
在这里插入图片描述

二、创建一个flutter项目

核心文件是main.dart文件

  1. 首先我们先清空main.dart文件
  2. 引入主题
    import ‘package:flutter/material.dart’;
  3. 定义入口方法 用来调用组件
    void main() {
    runApp(app);//引入组件
    }

三、创建自定义组件

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(title: const Text("你好、我是狼堡")),
      body: const Load(),
    ),
  ));
}

class Load extends StatelessWidget {
  const Load({super.key});

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return const Center(
      child: Text(
        "你好、我是灰太狼",
        textDirection: TextDirection.ltr,
        style: TextStyle(color: Colors.red, fontSize: 40),
      ),
    );
  }
}

//appBar 头部文本
//body 内容

在这里插入图片描述

MaterialApp方法配置
在这里插入图片描述

四、Container组件 就是div

在这里插入图片描述

alignment 内容对齐方式

  1. topCenter:顶部居中对齐;
  2. topLeft:顶部左对齐;
  3. topRight:顶部右对齐;
  4. center:水平垂直居中对齐;
  5. centerLeft:垂直居中水平居左对齐 ;
  6. centerRight:垂直居中水平居右对齐 ;
  7. bottomCenter 底部居中对齐 ;
  8. bottomLeft:底部居左对齐 ;
  9. bottomRight:底部居右对齐;

decoration 类似border 为BoxDecoration的类

color: 颜色;
border: 边框;
borderRadius: 倒圆色;

其他的大致和js一样就不做赘述了

五、Text属性

  1. textAlign 文本对齐方式;

    center 居中;
    left 左对齐;
    right 右对齐;
    justfy 两端对齐;

  2. textDirection 文本方向

    ltr 从左至右
    rtl 从右至 左

  3. overflow 文字超出屏幕之后的处理方式

    clip 裁剪 fade 渐隐 ellipsis 省略号

  4. textScaleFactor 字体显示倍率
  5. maxLines 文字显示最大行数
  6. style 字体的样式设置

    TextStyle 属性值有
    ①decoration ----none lineThrough overline underline (没有线、删除线、上划线、下划线)
    ②decorationColor 文字装饰线颜色
    ③decorationStyle 文字装饰线风格----dashed dotted double solid wavy (虚线、原点虚线、双虚线、实线、波浪)

  7. wordSpacing 间隙随值而变
  8. letterSpacing 字母间隙
    在这里插入图片描述
  9. fontStyle 文字样式----italic normal (斜体 正常体)
  10. fontSize 大小
  11. color 颜色
  12. fontWeight 粗细

六、image组件

  1. 常用属性

    • alignment 对齐方式

    • color 颜色

    • colorBlendMode 颜色混合模式

    • fit 图片的填充方式

      1. BoxFit.fill 全图显示充满
      2. BoxFit.contain 全图显示 显示原比例
      3. BoxFit.cover 图片充满 可能裁切 不变形
      4. BoxFit.fitWidth 宽度横向充满
      5. BoxFit.fitHeight 高度竖向充满
      6. BoxFit.scaleDown 全图显示不超过原图
    • repeat 平铺

      1. ImageRepeat.repeat 横向和纵向都重复 铺满盒子
      2. ImageRepeat.repeatX 横向重复
      3. ImageRepeat.repeatY 纵向重复
    • width、height 宽 高
      在这里插入图片描述

  2. Image 组件的构造函数
    new Image:从 ImageProvider 获取图像 。
    new Image.asset:加载资源图片。
    new Image.file:加载本地图片文件。
    new Image.network:加 载网络图片 。
    new Image.memory:加载 Uint8List 资源图片 。


//方式一:加载本地图片
return MaterialApp(
        body: Center(
          child: Image(
            image:AssetImage("图片地址"),
//AssetImage的父类是AssetBundleImageProvider 
//abstract class AssetBundleImageProvider extends ImageProvider<AssetBundleImageKey> 故:AssetImage是ImageProvider的实现类
            width: 100,
            height: 100,
          ),
));

//  ||
return MaterialApp(
        body: Center(
         child: Image.asset("图片地址",
          width: 200,
          height: 200,),
));



// 方式二:添加网络远程图片
import 'package:flutter/material.dart';
			///...略
class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context ){
      return MaterialApp(
        title:'Text widget',
        home:Scaffold(
          body:Center(
          child:Container(
            child:new Image.network(
              '图片地址',
              scale:1.0,
            ),
            width:300.0,
            height:200.0,
            color: Colors.lightBlue,
          ),
          ),
        ),
      );
  }
}
            

六、icon组件

常用属性
  Icon(
      Icons.favorite,//设置图标
      size: 300,//大小
      color: Colors.red,//颜色
      textDirection:TextDirection.rtl ,//设置用于渲染图标的文本方向
      semanticLabel: "语义标签",
    )

return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Icon 组件 - FontAwesome'),
        ),
        body: const Icon(
          Icons.favorite,
          color: Colors.red,
          fill: 0.2,
          size: 300.0,
          shadows: [
            Shadow(
              offset: Offset(15.0, 15.0),
              blurRadius: 50,
              color: Color.fromARGB(225, 0, 0, 255)
            ),
          ],
          semanticLabel: '哒哒哒哒哒',
          textDirection: TextDirection.rtl,
        ),
      )
    );

总结、

未完待续

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今天给大家分享两款实用的软件

在现代社会中&#xff0c;我们越来越依赖各种各样的软件来提高效率、获得信息和享受娱乐。所以&#xff0c;今天我将与大家分享两款我个人常用且非常实用的软件&#xff0c;一起来看看吧。 人工桌面&#xff1a; 人工桌面是一款备受欢迎的动态桌面壁纸软件&#xff0c;它为我们…

webRTC实现P2P音视频通话(无服务端)

文章目录 先看效果视频对话源码htmlvue2 音频对话源码遇到问题解决方案 先看效果 视频对话源码 html 虽然是vue项目&#xff0c;但是我写在了主页的index页面&#xff0c;仅仅为了测试&#xff0c; <!DOCTYPE html> <html lang"en"> <head><me…

mysql练习---备份/索引/视图

目录 一、备份与还原 二、索引 三、视图 一、备份与还原 CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );INSERT INTO books VALUES (11078, Learning MySQL, 2…

springboot mybatis 双数据库 多数据源

1. 依赖 mybatis相关&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency> <dependency><groupId>com.baomid…

【socket编程】TCP服务器、UDP服务器、本地套接字【C语言代码实现】

目录 0. 准备知识 0.1 大小端概念 0.2 网络字节序和主机字节序的转换 0.3 点分十进制串转换&#xff08;IP地址转换函数&#xff09; 0.4 IPV4结构体&#xff1a;&#xff08;man 7 ip&#xff09; 0.5 IPV6套接字结构体&#xff1a;&#xff08;man 7 ipv6&#xff09; …

IllegalStateException,BeanCreationException报错解决

报错解决 but cannot be delegated to target bean. Switch its visibility to package or protected.

Java反射-反射API、类加载过程

反射 Java反射API是Java语言实现动态性的关键&#xff0c;它允许动态的创建对象、赋值、以及调用对象的方法&#xff0c;同时反射也是实现动态代理的关键&#xff0c;涉及到反射相关的几个类主要有 Class、ClassLoader&#xff0c;Field、Method、Constructor、Proxy等。因为在…

3D 目标检测 SFD 问题记录

问题1&#xff1a;read timeout 顺着网址手动下载&#xff0c;然后放入相应的目录下 问题2&#xff1a;SparseModule import spconv 要改写成 import spconv.pytorch as spconv 问题3&#xff1a;skimage pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/si…

MySQL备份、索引、视图

目录 一、备份 案例素材 1、使用mysqldump命令备份数据库中的所有表​编辑 2、备份booksDB数据库中的books表 ​3、使用mysqldump备份booksDB和test数据库 ​4、使用mysqldump备份服务器中的所有数据库 ​5、使用mysql命令还原第二题导出的books表 ​6、进入数据库使用…

cuda 线程索引ID的计算公式(图文)

博客中有一部分公式来自&#xff1a;cuda 线程索引ID的计算公式_blockidx.x_奕星星奕的博客-CSDN博客 我做的工作就是加了图更加形象的表示&#xff0c;还有公式的延申。 线程索引的计算公式 一个Grid可以包含多个Blocks&#xff0c;Blocks的组织方式可以是一维的&#xff0c;…

springboot人脸识别基于java的游戏推荐管理平台的设计及实现_0816qvue

表名&#xff1a;messages 功能&#xff1a;留言板 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP userid bigint 留言人id username v…

数据结构--绪论

这里写目录标题 前言数据结构研究内容基本概念与术语数据元素与数据对象的区别数据结构逻辑结构存储结构 数据类型和抽象数据类型数据类型抽象数据类型定义格式举例 小结研究内容基础概念 抽象数据类型的表示和实现 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录…

什么是团体标准?

团体标准是由一个特定的组织、团体或行业共同制定的标准。它是一种在特定领域或行业中被广泛认可和采用的标准化文件&#xff0c;旨在规范产品、服务或流程的要求和规范。团体标准通常由行业协会、标准化组织或特定领域的专业团体开发&#xff0c;并经过广泛讨论、协商和验证&a…

【分享】报告!发现一个低代码数据可视化开发平台~

前言&#xff1a; 哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 最近木易巷发现了一个低代码数据可视化开发平台&#xff0c;快来看看吧~ 1、介绍 GoView 是一个拖拽式低代码数据可视化开发平台&#xff0c;旨在帮助用户快速构建数据大屏&#xff0c;同时减少心智负担。通…

【沈阳航空航天大学808】22年真题及解析

哈喽大家好&#xff0c;鉴于真题系列反馈很不错&#xff0c;我决定重启真题系列&#xff01; 今天分享的是沈阳航空航天大学808信号与系统的试题及解析。本套试题难度中等&#xff0c;题量不多&#xff0c;相关计算复杂程度不大&#xff0c;考察了状态方程以及电路模型和稳态响…

token的验证流程

前端 后台 1.1 登录接口(携带账号和密码(MD5)) -->到后台 需要&#xff1a; 验证(账号密码)生成Token(包含id昵称&#xff0c;不敏感的数据) 1.2 后台需要解析&#xff0c;-->然后在前端显示 解析(解析出前端需要显示的数据)把token放到某一个位置…

2023年Unity面试题大全,共十万字面试题总结【收藏一篇足够面试,持续更新】

&#x1f388;前言 为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新的内容&#xff0c;并对之前的版本中有些模糊的地方进行了纠正。此篇文章为Unity所有面试题模块的目录导航文章&#xff0c;全网最全的 Unity 面试题 都在这里了…

6.2.7 简单邮件传送协议SMTP

6.2.7 简单邮件传送协议SMTP 我们从一个SMTP发送的示例来了解简单邮件传送协议SMTP。 例&#xff1a;在主机Alpha.ARPA上的Smith发送邮件给在主机Beta.ARPA 的Jones.Green和Brown的过程。这里我们假定主机Alpha直接联系主机Beta。 Sender-SMTP和Receiver-SMTP建立了传输信道…

Hive(27): join连接查询

1 join概念回顾 根据数据库的三范式设计要求和日常工作习惯来说,我们通常不会设计一张大表把所有类型的数据都放在一起,而是不同类型的数据设计不同的表存储。比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关…

FreeSwitch 1.10.9 在CentOS7.9编译spandsp,V18_MODE_5BIT_4545错误

最近FreeSwitch 1.10.9 在CentOS7.9编译mod_spandsp出问题, making all mod_spandsp make[4]: Entering directory /usr/local/src/freeswitch-1.10.9.-release/src/mod/applications/mod_spandspCC mod_spandsp_la-mod_spandsp.loCC mod_spandsp_la-udptl.loCC …