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

Flutter常用Widget小部件

小部件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.lryc.cn/news/529993.html

相关文章:

  • 微信小程序实战0 设置
  • 2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存
  • 使用 postman 测试思源笔记接口
  • 当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例
  • 阿里最新普通x231 逆向分析
  • php的使用及storm环境部署
  • 高可用 Keepalived 服务部署流程
  • 【新春特辑】2025年1月科技浪潮中的AI最新时事与科技趋势
  • 解决Django非ORM模型提示初始化request问题
  • G. XOUR
  • 有没有个性化的UML图例
  • 【RAG】SKLearnVectorStore 避免使用gpt4all会connection err
  • vue框架技术相关概述以及前端框架整合
  • Spring Boot + Facade Pattern : 通过统一接口简化多模块业务
  • 牛客周赛 Round 78
  • 【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类
  • 02.01 生产者消费者
  • mac 手工安装OpenSSL 3.4.0
  • kamailio-ACC_JSON模块详解【后端语言go】
  • ArkTS语言介绍
  • 海外问卷调查之渠道查,企业经营的指南针
  • spring和Mybatis的逆向工程
  • 【Android】问deepseek存储访问
  • Android记事本App设计开发项目实战教程2025最新版Android Studio
  • python学习——函数的返回值
  • 【竞技宝】裂变天地S1:BB0-2PARI淘汰出局
  • 数据分析系列--⑨RapidMiner训练集、测试集、验证集划分
  • 实践Rust:编写一个猜数字游戏
  • JavaFX - 3D 形状
  • 阿里新发的大模型Qwen2.5-max如何?