Flutter常用Widget小部件

news/2025/2/5 2:42:56/

小部件Widget是一个类,按照继承方式,分为无状态的StatelessWidget和有状态的StatefulWidget。

这里先创建一个简单的无状态的Text小部件。

Text文本Widget

文件:lib/app/app.dart

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Text('你好世界!',textDirection: TextDirection.ltr,style: TextStyle(fontSize: 50.0,color: Color(0xAAFF0000),backgroundColor: Color(0xAAFFFFFF),),textAlign: TextAlign.center,overflow: TextOverflow.ellipsis,));}
}

这里引用了flutter的material包,里面包含StatelessWidget类。

Flutter调用Widget

import 'package:flutter/material.dart';
import 'package:package_name/app/app.dart';void main() {runApp(App());
}

1

RichText 富文本

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: RichText(textDirection: TextDirection.ltr,text: TextSpan(text: '你好,', style: TextStyle(fontSize: 50.0), children: [TextSpan(text: '世界!',style: TextStyle(color: Colors.pinkAccent,fontWeight: FontWeight.bold,),),TextSpan(text: '我来了!'),]),));}
}

这里用到了RichText,详情见:https://api.flutter-io.cn/flutter/widgets/RichText-class.html
1

Image(图像)

显示资源包里的图像

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Image.asset('assets/images/1.png',width: 300,),);}
}

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Image(image: AssetImage('assets/images/1.png'),width: 300,),);}
}

这里用到了图片,需要把图片放到assets/images目录下,然后在pubspec.yaml定义资源名称,

  assets:- assets/images/1.png

1

显示来自网络的图像

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Image(image: NetworkImage('https://img-home.csdnimg.cn/images/20250107060517.png'),width: 300,),);}
}

1
这里用了Image挂件。

容器

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Container(color: Colors.deepPurpleAccent, // 容器颜色alignment: Alignment.topCenter, // 对齐方式padding: EdgeInsets.all(60), // 边距child: Image(image: NetworkImage('https://img-home.csdnimg.cn/images/20250107060517.png'),fit: BoxFit.cover // 适应空间),),);}
}

1

装饰容器

import 'package:flutter/material.dart';class App extends StatelessWidget {Widget build(BuildContext context) {return Center(child: Container(decoration: BoxDecoration(color: Colors.deepOrangeAccent,borderRadius: BorderRadius.all(Radius.circular(25)),border: Border.all(color: Colors.deepOrangeAccent,style: BorderStyle.solid,),boxShadow: [BoxShadow(color: Colors.deepOrangeAccent,offset: Offset(5, 20),blurRadius: 30,)]),alignment: Alignment.topCenter, // 对齐方式padding: EdgeInsets.all(0), // 边距width: 400,height: 200,child: Image(image: AssetImage('assets/images/1.png'), fit: BoxFit.cover // 适应空间),),);}
}

这里用到了容器装饰器BoxDecoration。


http://www.ppmy.cn/news/1569399.html

相关文章

Spring 面试题【每日20道】【其二】

1、Spring MVC 具体的工作原理? 中等 Spring MVC 是 Spring 框架的一部分,专门用于构建基于Java的Web应用程序。它采用模型-视图-控制器(MVC)架构模式,有助于分离应用程序的不同方面,如输入逻辑、业务逻辑…

关于Java的HttpURLConnection重定向问题 响应码303

我有一个Java函数,发送了一个POST请求,并获取响应头的Headers,使用 java.net.http 库能正常运行。 伪代码如下 private static String loginPhone() throws Exception {String url1 "https://api-user.xxx";String data1 Strin…

初始化mysql报错cannot open shared object file: No such file or directory

报错展示 我在初始化msyql的时候报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解读: libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此…

常用的npm镜像源配置方法

常用的npm镜像源配置方法 常用的npm镜像源配置方法一、切换到淘宝镜像源二、切换到腾讯云镜像源三、切换到华为云镜像源四、通过淘宝提供的 cnpm 工具安装包 常用的npm镜像源配置方法 一、切换到淘宝镜像源 配置命令: npm config set registry https://registry.np…

Python中的函数(下)

函数返回值 返回单个值 函数可以通过 return 语句返回一个值。一旦执行到 return 语句,函数就会停止执行,并将指定的值返回给调用者。例如: 返回多个值 实际上,Python函数只能返回一个值,但可以通过返回一个元组来模…

【Elasticsearch】_rollover API详解

解释 POST logs-foo-bar/_rollover 在Elasticsearch中,POST logs-foo-bar/_rollover 是一个API调用,用于触发索引的滚动操作。滚动操作允许您在索引达到一定大小或时间限制时,自动将写入操作切换到一个新的索引,同时保留旧索引的…

智慧城市(城市大脑)建设方案

城市建设面临的挑战 快速发展的城市面临着诸多挑战,如数据壁垒、缺乏数据整合、数据价值挖掘不足,以及应急指挥手段传统等问题。这些问题制约了城市管理的效率和效果,亟待解决。 智慧城市建设背景 在国家治理现代化战略的大背景下&#x…

Windows图形界面(GUI)-QT-C/C++ - QT Stacked Widget

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 一、概述 二、使用场景 1. 多步表单 2. 选项卡界面 3. 状态机界面 三、常见样式 四、属性设置 1. 页面管理 2. 布局管理 3. 信号与槽 五、内容处理 1. 添加页面 2. 移除页面 3.…