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

Flutter 常见布局模型

Flutter的常见的布局模型有容器(Container)、弹性盒子布局(Flex、Row、Column、Expanded)、流式布局(Wrap、Flow)、层叠布局(Stack、Position)、滚动布局(ListView、GridView)等。
布局模型也都是 widget,很多布局widget都继承自Container,其布局UI树状图如图:
布局

布局容器 Container

创建一个项目:

flutter create buju

lib/main.dart 代码

import 'dart:math' as math;
import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Container(height: 50,width: 100,alignment: Alignment.center,decoration: BoxDecoration(color: Colors.grey,borderRadius: BorderRadius.all(Radius.circular(10.0)),border: Border.all(color: Colors.black, width: 2.0),),margin: EdgeInsets.fromLTRB(200, 50, 0, 0),transform: Matrix4.rotationZ(30 * math.pi / 180),child: Text("Container \n布局"),),),);}
}

从上面代码可以看到 Container 布局有很多属性:
color 设置容器的背景色。
width 设置容器的宽。
height 设置容器的高。
alignment 设置子widget的对齐方式,如居中。
decoration 设置背景装饰,如阴影、背景图等。
foregroundDecoration 设置前景装饰,比如前景色。
margin 设置容器等外边距。
padding 设置容器等内边距。
transform 设置形变,如需旋转、拉长等。
child 设置容器包裹的子Widget。
更多请见文档。

效果图如下:
1

弹性盒子布局

Flex

direction 设置主轴排列方向

Flex 有个重要的属性 direction,用来指定主轴的方向,子元素会按照主轴的方向排列。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Flex(direction: Axis.horizontal,children: <Widget>[Container(width: 30,height: 50,color: Colors.red,),Container(width: 30,height: 50,color: Colors.green,),Container(width: 30,height: 50,color: Colors.grey,),],),),);}
}

这里主轴方向是horizontal水平方向,效果图如下:
Flex
改成垂直direction: Axis.vertical,后的效果:
Flex

mainAxisAlignment 设置子元素排列方式

另一个重要属性是mainAxisAlignment,用来决定主轴的排列方式。
默认是start:mainAxisAlignment: MainAxisAlignment.start
end:指最后一个元素排在主轴的最后。这里以主轴水平方向排列为例,如下图:
1
center:所有子元素按照主轴方向依次排列,并居中显示在父容器中。如下图:
center
spaceAround:每个子元素之间的间隔相等,第一个元素和最后一个元素距离父容器的边距为孩子之间间距的一半。如下图:
spaceAround
spaceBetween:子元素两端对齐,第一个子元素和最后一个子元素分别位于容器中主轴的起始处和终止处,同时各个子元素之间的间隔相等,如下图:
spaceBetween
spaceEvenly: 各个子元素之间的间隔相等,同时第一个子元素和最后一个子元素距离父容器的边距也为各子元素之间的间隔。
spaceEvenly

mainAxisSize 设置主轴大小

mainAxisSize默认是max,Flex容器占据主轴全部空间。
还可以设置为min,Flex容器尽可能占据少的主轴空间。

direction: Axis.horizontal,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.min,

mainAxisSize
这里把Flex容器设置为最小的大小,导致三个子元素挤在了一起。

crossAxisAlignment 设置交叉轴对齐方式

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Flex(direction: Axis.horizontal,crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[Container(width: 30,height: 100,color: Colors.red,),Container(width: 30,height: 50,color: Colors.green,),Container(width: 30,height: 50,color: Colors.grey,),],),),);}
}

crossAxisAlignment 用来设置元素在交叉轴方向上的对齐方式。
默认值是center,各个子元素在交叉轴上居中对齐。如下图(这里以主轴沿水平方向):
center
end:子元素布局在Flex容器交叉轴方向的尾部。
end

start:子元素布局在Flex容器交叉轴方向的头部。
start
stretch:子元素填充满交叉轴方向的空间。
stretch

verticalDirection 设置交叉轴布局的对齐方向

这个属性和上面的crossAxisAlignment属性配合使用,用于指定交叉轴布局的对齐方向
默认值是down,表示默认对齐的方向是从上到下,crossAxisAlignment默认start时,三个元素在顶部。
如果将verticalDirection改成up,表示从下到上,crossAxisAlignment还是默认start时,效果图如下:
verticalDirection
Row 和 Column 都继承自Flex,所以Flex都属性同样适用于Row和Column,只是预先指定好了主轴的方向。
Row表示在水平方向上布局子元素,主轴方向是水平方向。
Column表示在垂直方向上布局子元素,主轴方向是垂直方向。
Flex 更多参数见:https://api.flutter-io.cn/flutter/widgets/Flex-class.html

Expanded 按比例缩放

Expanded 布局能让子元素能够按照一定的比例缩放,来填充满父容器在主轴方向上剩余的剩余空间。通常,Expanded 组件通常是作为Flex 组件的子组件使用。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Flex(direction: Axis.horizontal,children: <Widget>[Expanded(flex: 1,child: Container(height: 150,color: Colors.red,),),Expanded(flex: 1,child: Container(height: 150,color: Colors.green,),),Expanded(flex: 1,child: Container(height: 150,color: Colors.blue,),),],),),);}
}

效果图:
Expanded
如果把 Expanded 的 Flex 属性分别设置为 1,2,3,得到的效果图如下:
Flex

流式布局

在弹性布局中,如果宽度或高度超过屏幕尺寸,会抛出异常:

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Flex(direction: Axis.horizontal,children: <Widget>[Container(width: 150,height: 100,color: Colors.red,),Container(width: 280,height: 50,color: Colors.green,),Container(width: 50,height: 50,color: Colors.grey,),],),),);}
}

1

════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 105 pixels on the right.

这是因为弹性和子布局模型是线性的,不会自动换行。

Wrap 自动换行的容器

Wrap支持子元素自动换行,默认主轴水平方向。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Wrap(direction: Axis.horizontal,spacing: 10,runAlignment: WrapAlignment.start,verticalDirection: VerticalDirection.down,runSpacing: 10,children: <Widget>[Container(width: 150,height: 150,color: Colors.red,),Container(width: 200,height: 50,color: Colors.green,),Container(width: 50,height: 50,color: Colors.grey,),Container(width: 200,height: 150,color: Colors.black,),],),),);}
}

alignment、crossAxisAlignment、verticalDirection 与 Flex 的同名属性作用相同。
runAlignment 用来设置新一行或新一列的对齐方式。默认值是start,如果主轴方向是水平方向,start就是在交叉轴方向上从顶部开始布局子元素,如下图。end 是在交叉轴方向上从底部开始布局子元素。center 设置居中对齐,子元素会从交叉轴方向上父容器的中心开始布局。
runAlignment

Flow 布局允许用户自定义布局规则,具体参数见:https://api.flutter-io.cn/flutter/widgets/Flow-class.html

层叠布局:绝对定位

Stack 布局类似Web开发中的绝对定位。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: Center(child: Stack(children: <Widget>[Container(width: 150,height: 150,color: Colors.red,),Positioned(left: 8.0,right: 8.0,top: 8.0,child: Text('测试'),)],),)),);}
}

这个例子是对Text组件和Container组件的重叠,其中Positioned是定位组件,只能放在Stack中。
Stack

滚动布局

ListView 处理大量数据

当数据量特别大时,上面的布局方式实现起来会非常麻烦,而用滚动布局,直接将数据放入滚动布局模型的 children 数据中即可。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: ListView.builder(itemCount: 50,itemExtent: 50,itemBuilder: (BuildContext context, int index) {return Container(height: 50,child: Row(crossAxisAlignment: CrossAxisAlignment.center,children: [Text('索引: ${index + 1}')],),);})),);}
}

1
详细参数见文档:https://api.flutter-io.cn/flutter/widgets/ListView-class.html。

ListView.separated 增加分割线

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: ListView.separated(itemCount: 50,separatorBuilder: (BuildContext context, int ndex) {return Divider();},itemBuilder: (BuildContext context, int index) {return SizedBox(height: 50,child: Row(crossAxisAlignment: CrossAxisAlignment.center,children: [Text('索引: ${index + 1}')],),);})),);}
}

1

GridView 构建多行多列表格

GridView 的创建需要一个 delegate 代表,即属性 gridDelegate , Flutter SDK 默认提供了两个 SliverGridDelegate 的子类,分别是: SliverGridDelegateWithFixedCrossAxisCount 和 SliverGridDelegateWithMaxCrossAxisExtent 。

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: GridView(gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, crossAxisSpacing: 8, mainAxisSpacing: 8),children: [Container(width: 50,height: 50,color: Colors.red,),Container(width: 50,height: 50,color: Colors.red,),Container(width: 50,height: 50,color: Colors.red,),Container(width: 50,height: 50,color: Colors.red,),Container(width: 50,height: 50,color: Colors.red,),Container(width: 50,height: 50,color: Colors.red,),],)),);}
}

效果图:
1

动态创建 GridView

import 'package:flutter/material.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(),body: GridView.builder(gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(maxCrossAxisExtent: 8,mainAxisSpacing: 8,crossAxisSpacing: 8,childAspectRatio: 2.0),itemBuilder: (BuildContext context, int index) {return Container(color: Colors.red,width: 50,height: 50,);}),),);}
}

1
maxCrossAxisExtent 设置条目的宽度。
mainAxisSpacing 设置主轴的间隔。
crossAxisSpacing 设置交叉轴间隔。
childAspectRatio 设置子元素的宽高比。

相关链接

https://docs.flutter.cn/ui/layout/

相关文章:

Flutter 常见布局模型

Flutter的常见的布局模型有容器&#xff08;Container&#xff09;、弹性盒子布局&#xff08;Flex、Row、Column、Expanded&#xff09;、流式布局&#xff08;Wrap、Flow&#xff09;、层叠布局&#xff08;Stack、Position&#xff09;、滚动布局&#xff08;ListView、Grid…...

数据结构系列一:初识集合框架+复杂度

前言 数据结构——是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是计算机专业的基础课程&#xff0c;但也是一门不太容易学好的课&#xff0c;它当中有很多费脑子的东西&#xff0c;之后在学习时&#xff0c;你若碰到了困惑或不解的地方 都是很正常的反应&…...

文献阅读 250220-Convective potential and fuel availability complement near-surface

Convective potential and fuel availability complement near-surface weather in regulating global wildfire activity 来自 <https://www.science.org/doi/10.1126/sciadv.adp7765> ## Abstract: 炎热、干燥、多风、无雨的条件有利于野火——这种关于火灾天气的知识为…...

ASP.NET JWT认证失败响应:从默认到自定义的优雅改造

本文主要介绍如何通过ASP.NET Core的JwtBearerEvents机制&#xff0c;实现JWT认证失败响应的深度定制。 1. 背景 在之前的文章《一个简单的ASP.NET一致性返回工具库》 中&#xff0c;我们介绍了 Sang.AspNetCore.CommonLibraries 这一通用库&#xff0c;它通过统一API响应模型…...

AI大模型生成Logo图形商标,快速可选性强!

在申请注册商标时&#xff0c;不仅有文字商标&#xff0c;还有图形商标&#xff0c;及文字和图形的组合商标&#xff0c;如何更好的实现快速出图和对图形描述的要求&#xff0c;普推知产商标老杨近期也是研究测试了各种大模型。 最后选了AI模型本地部署及API接入生成图形商标的…...

Python爬虫实战:爬取豆瓣电影

目录 引言 1. 爬虫基础 1.1 什么是爬虫&#xff1f; 1.2 Python爬虫常用库 2. 实战&#xff1a;抓取豆瓣电影Top250 2.1 安装依赖库 2.2 发送HTTP请求 ​编辑 2.3 解析HTML ​编辑 2.4 存储数据 2.5 完整代码 3. 进阶&#xff1a;处理分页和动态内容 3.1 抓取多页…...

嵌入式0xDEADBEEF

在嵌入式系统中&#xff0c;0xDEADBEEF 是一个常见的“魔数”&#xff08;magic number&#xff09;&#xff0c;通常用于调试和内存管理。它的含义和用途如下&#xff1a; 1. 调试用途 未初始化内存的标记&#xff1a;在调试时&#xff0c;0xDEADBEEF 常用于标记未初始化或已…...

python入门笔记5-集合与字典

元组 Python 的元组&#xff08;tuple&#xff0c;简写为tup&#xff09;与列表类似&#xff0c;不同之处在于元组的元素不能修改。 元组使用小括号​()​&#xff0c;列表使用方括号​[]​。 好处就是节省内存。 集合 集合是无序、不重复元素的容器。 用 {} 或 set() 创建…...

Nginx(详解以及如何使用)

目录 1. 什么是Nginx&#xff1f; 2. 为什么使用nginx? 3. 安装nginx 3.1?安装nginx的依赖插件 3.2 下载nginx ?3.3?创建一个目录作为nginx的安装路径 ?3.4?解压 ?3.5?进入解压后的目录 3.6?指定nginx的安装路径 ?3.7?编译和安装nginx 3.8 启动nginx ?…...

java每日精进 2.20 MQ相关复健

在 RabbitMQ 中&#xff0c;消息消费者对消息的签收&#xff08;acknowledgment&#xff09;可以通过三种方式进行管理&#xff1a;自动签收、手动签收 和 拒绝签收。它们主要控制消费者如何处理消息确认和消息的重新排队。下面详细讲解它们的区别&#xff0c;并通过代码示例展…...

微信小程序地图map全方位解析

微信小程序地图map全方位解析 微信小程序的 <map> 组件是一个功能强大的工具&#xff0c;可以实现地图展示、定位、标注、路径规划等多种功能。以下是全方位解析微信小程序地图组件的知识点&#xff1a; 一、地图组件基础 1. 引入 <map> 组件 在页面的 .wxml 文…...

Windows隐藏窗口/开机自启动

目录 使用Start-Process命令控制窗口状态 设置程序开机自启动 使用Start-Process命令控制窗口状态 隐藏窗口运行程序 使用Start-Process命令时&#xff0c;可以通过-WindowStyle Hidden参数让程序在后台运行&#xff0c;窗口不可见。例如&#xff1a; Start-Process D:\note…...

量子计算的威胁,以及企业可以采取的措施

当谷歌、IBM、Honeywell和微软等科技巨头纷纷投身量子计算领域时&#xff0c;一场技术军备竞赛已然拉开帷幕。 量子计算虽能为全球数字经济带来巨大价值&#xff0c;但也有可能对相互关联的系统、设备和数据造成损害。这一潜在影响在全球网络安全领域引起了强烈关注。也正因如…...

日期类(完全讲解版)

1. 类的设计思想 Date 类的设计目的是为了封装和处理日期信息&#xff0c;它提供了对日期的基本操作&#xff0c;如日期加减、日期比较、日期合法性检查等。类中的私有成员 int _year, int _month, int _day 存储了日期的年、月、日。 类的声明和构造 Date 类的声明&#xff1…...

在线考试系统的公平性和高效性如何保证

随着互联网技术的飞速发展&#xff0c;线上教育已成为现代教育体系中的重要组成部分。而在线考试系统作为线上教育的重要环节&#xff0c;其公平性和高效性成为了广大教育工作者和考生关注的焦点。本文将深入探讨在线考试系统如何保证考试的公平性和高效性&#xff0c;以期为线…...

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型&#xff0c;凭借其强大的自然语言处理能力和丰富的知识储备&#xff0c;迅速成为业界关注的焦点。无论是文本生…...

基于spring的策略模式

集合spring框架的是策略模式&#xff0c;直接上代码 1、接口 public interface PaymentStrategy {//支付接口void pay(double amount);}2、实现类 2.1 实现类一 Component("creditCard") //作为区分的标识 public class CreditCardPayment implements PaymentStr…...

面试编程题

1. 请写出string类的定义&#xff0c;要求有构造函数&#xff0c;析构函数&#xff0c;拷贝&#xff0c;赋值函数。 #include <cstring> #include <algorithm>class String { public:explicit String(const char* str nullptr){if(str){str_ new char[strlen(st…...

AI工具讲解

推荐超级课程&#xff1a; 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战 目录 模型管理OllamaHugging Face区别 AI模型交互应用程序AnythingLLMCherry Studio AI开发相关Python库 模型管理 Ollama h…...

计算机网络:应用层 —— 动态主机配置协议 DHCP

文章目录 什么是 DHCP&#xff1f;DHCP 的产生背景DHCP 的工作过程工作流程地址分配机制 DHCP 中继代理总结 什么是 DHCP&#xff1f; 动态主机配置协议&#xff08;DHCP&#xff0c;Dynamic Host Configuration Protocol&#xff09;是一种网络管理协议&#xff0c;用于自动分…...

基于Spring Boot,结合Redis缓存和RabbitMQ消息队列的站内信系统设计

1. 添加依赖 在pom.xml中添加必要的依赖&#xff1a; <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependen…...

【JAVA:list中再定义一个list对象,循环赋值不同的list数据,出现追加重复数据问题】

问题描述&#xff1a; list中再定义一个list对象&#xff0c;循环赋值不同的list数据&#xff0c;结果全部都累加到每条数据中了&#xff0c;每条数据中都出现重复数据。 问题解决&#xff1a; 1.创建树结构方法信息 2.创建一个新的 List 对象&#xff0c;避免引用问题 3.使…...

系统思考—价格策略

“我们之所以犯错&#xff0c;是因为我们没有意识到自己处在错误的思维模式中。” —— 卡尔波普尔&#xff08;哲学家&#xff0c;批判理性主义的创始人&#xff09; 最近和小伙伴们聊到定价这个变量&#xff0c;深刻感受到系统思考的强大力量。记得在MIT经典沙盘《人民航空经…...

提升信息检索准确性和效率的搜索技巧

一、基础技巧 精准关键词 避免长句子&#xff0c;提取核心关键词&#xff08;如用“光合作用 步骤”代替“请告诉我光合作用的具体过程”&#xff09;。 同义词替换&#xff1a;尝试不同表达&#xff08;如“AI 发展史” vs “人工智能 历史”&#xff09;。 排除干扰词 使用…...

第3章:在LangChain中如何设置模型参数

本章主要介绍了如何在LangChain4j中配置和调整模型参数&#xff0c;以满足不同的需求和优化模型的表现&#xff1b; 在Java开发框架中通过LangChain4j调用LLM&#xff0c;可以如何设置模型参数&#xff0c;以及对应参数的详细说明&#xff0c;如此以来你可以掌握在智能体开发过…...

java | MyBatis-plus映射和golang映射对比

文章目录 Java实体类和数据库的映射1.默认驼峰命名规则2.自定义字段映射3.关闭驼峰命名规则4.JSON序列化映射 Golang1. 结构体与表的映射2. 字段与列的映射3. 关联关系映射4. 其他映射相关标签 这篇也是做数据库映射方面的对比&#xff1a; Java 实体类和数据库的映射 1.默认…...

CMDB与ITIL的关系:如何通过CMDB实现IT服务管理?

在数字化转型的浪潮中&#xff0c;企业IT系统的复杂性呈指数级增长。如何高效管理海量IT资源、快速响应业务需求&#xff0c;成为每个企业必须面对的挑战。而CMDB&#xff08;配置管理数据库&#xff09;和ITIL&#xff08;信息技术基础设施库&#xff09;的结合&#xff0c;正…...

【python】网页批量转PDF

安装wkhtmltopdf 网站&#xff1a;wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…...

开题报告——基于Spring Boot的垃圾分类预约回收系统

关于本科毕业设计(论文)开题报告的规定 为切实做好本科毕业设计(论文)的开题报告工作,保证论文质量,特作如下规定: 一、开题报告是本科毕业设计(论文)的必经过程,所有本科生在写作毕业设计(论文)之前都必须作开题报告。 二、开题报告主要检验学生对专业知识的驾驭能…...

第1章大型互联网公司的基础架构——1.10 其他NoSQL数据库

这里我们简单介绍一下其他常见的NoSQL数据库及其适用的场景&#xff0c;其中部分数据库会在后续服务设计章节中正式使用时再做详细介绍。 1.10.1 文档数据库 文档数据库的典型代表是MongoDB和CouchDB。**文档数据库普遍采用JSON格式来存储数据&#xff0c;而不是采用僵硬的行…...

大数据治理之solr的体现

大数据治理之solr的体现 一&#xff0c;大数据治理下Solr的作用 在大数据治理的背景下&#xff0c;Solr作为一个高性能的搜索平台&#xff0c;发挥这重要的作用&#xff0c;下面是Solr在大数据治理中的几个关键作用和体现&#xff1a; 数据索引与检索&#xff1a; 高效检索&a…...

【微信小程序开发】元素顶部重叠

微信小程序开发-顶部元素重叠 原因是开启了自定义导航栏&#xff0c;navigationStyle“custom”&#xff08;app.json) 把这行删掉就好了...

Spring框架基本使用(Maven详解)

前言&#xff1a; 当我们创建项目的时候&#xff0c;第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷&#xff0c;应该引入更多的管理工具&#xff0c;帮我们管理。 Maven的出现帮我们大大解决了管理的难题&#xff01;&#xff01; Maven&#xf…...

Hadoop一 HDFS分布式文件系统

一 分布式文件存储 了解为什么海量数据需要使用分布式存储技术 100T数据太大&#xff0c;单台服务器无法承担。于是&#xff1a; 分布式服务器集群 靠数量取胜&#xff0c;多台服务器组合&#xff0c;才能Hold住&#xff0c;如下 分布式不仅仅是解决了能存的问题&#xff…...

Windows 图形显示驱动开发-驱动驻留的供应和回收更改

访问非用户分配 对于 Windows 显示驱动程序模型 (WDDM) v2&#xff0c;有关 套餐 和 回收 的要求正在放宽。 用户模式驱动程序不再需要在内部分配上使用套餐和回收。 空闲/挂起的应用程序将使用 Microsoft DirectX 11.1 中引入的 TrimAPI 删除驱动程序内部资源。 API 级别将继…...

【含文档+PPT+源码】基于Python的图书推荐系统的设计与实现

课程简介&#xff1a; 本课程演示的是一款基于python的图书推荐系统的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行…...

glob 用法技巧

目录 处理大量文件节省内存 匹配多个文件扩展名 遍历多种格式文件 遍历某一个文件&#xff1a; 查找当前目录和子目录 6. 排除特定文件 7. 大小写不敏感匹配 8. 获取绝对路径 9. 处理特殊字符 处理大量文件节省内存 技巧&#xff1a;用 iglob 替代 glob&#xff0c;逐…...

Windows 启动 SSH 服务

Windows 启动 SSH 服务 一、OpenSSH Server 安装 以 Win10 系统为例 打开设置 -> 系统 -> 可选功能 在 添加的功能 查看是否安装了 OpenSSH 服务 或者 OpenSSH Server 如果没有安装&#xff0c;找到 系统->添加可选功能 -> 查看功能->搜索 OpenSSH 服务 ->…...

基于Llama 3.2-Vision的医学报告生成

记录运用大模型解决医学报告实例&#xff0c;仅介绍本地调用的情况。 前情提要 已安装 Python 显存不少于8G&#xff08;8G设备上测试成功&#xff0c;其他环境可以自行测试&#xff09;。 需要安装Ollama (Ollama 是一个允许在本地运行多模态模型的平台)。 方式1&#xff1…...

Freertos学习第一篇-总体概述

目录 1、基础概念1.1、FreeRTOS概念 2、模块学习2.1、任务2.2、调度&#xff08;Scheduling&#xff09;2.3、任务间通讯2.4、时间管理2.5、内存管理 3、各模块串联逻辑3.1、任务创建与调度3.2、任务间通讯3.3、时间管理3.4、内存管理 4、示例代码4.1、代码说明 5、学习路线建议…...

Windows系统安装GPU驱动/CUDA/cuDNN

1、驱动安装步骤 1.1下载驱动 通过浏览器访问Download The Official NVIDIA Drivers | NVIDIA 1.2安装驱动 1.3检查 打开【设备管理器】—【显示适配器】 2、CUDA安装步骤 2.1下载CUDA 官网链接CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA 开发者 2.2安装CUDA 3、cuDN…...

Nginx 安装及配置教程(Windows)【安装】

文章目录 一、 Nginx 下载 1. 官网下载2. 其它渠道 二、 Nginx 安装三、 配置四、 验证五、 其它问题 1. 常用命令2. 跨域问题 软件 / 环境安装及配置目录 一、 Nginx 下载 1. 官网下载 安装地址&#xff1a;https://nginx.org/en/download.html 打开浏览器输入网址 htt…...

一只企鹅如何改变世界

一、历史的转折点:一只企鹅如何改变世界 1991年,芬兰大学生Linus Torvalds在邮件列表中写道:“我正在做一个自由的操作系统(只是爱好,不会像GNU那样庞大专业)”。这个后来被称为Linux内核的项目,与GNU项目的结合,点燃了开源运动的燎原之火。 关键演化: 1996年:Tux企…...

linux进程的内存空间映射(段)

Linux进程的内存空间映射 在 Linux 中&#xff0c;每个进程的内存空间是一个虚拟地址空间&#xff0c;操作系统通过内存映射机制&#xff08;Memory Mapping&#xff09;将不同的内存区域分配给不同类型的资源和需求。内存空间映射决定了进程如何访问不同类型的内存&#xff0…...

前端导出word文件,并包含导出Echarts图表等

基础导出模板 const html <html><head><style>body {font-family: Times New Roman;}h1 {text-align: center;}table {border-collapse: collapse;width: 100%;color: #1118FF;font-weight: 600;}th,td {border: 1px solid black;padding: 8px;text-align: …...

武汉火影数字|VR大空间内容制作:开启沉浸式体验新时代

近年来&#xff0c;随着VR技术的飞速发展&#xff0c;VR大空间制作逐渐成为行业的热门话题。它突破传统VR的空间限制&#xff0c;为用户带来了更加自由、沉浸的体验。无论是娱乐、教育还是工业领域&#xff0c;VR大空间制作都在悄然改变我们的生活和工作方式。 什么是VR大空间制…...

【拥抱AI】GPT Researcher的诞生

一、GPT Researcher 研究过程总结 GPT Researcher 是一个开源的自主智能体&#xff0c;旨在通过利用人工智能技术实现高效、全面且客观的在线研究。它通过一系列创新的设计和优化&#xff0c;解决了传统研究工具&#xff08;如 AutoGPT&#xff09;中存在的问题&#xff0c;如…...

Mac端homebrew安装配置

拷打了一下午o3-mini-high&#xff0c;不如这位博主的超强帖子&#xff0c;10分钟结束战斗 跟随该文章即可&#xff0c;2025/2/19亲测可行 mac 安装HomeBrew(100%成功)_mac安装homebrew-CSDN博客文章浏览阅读10w次&#xff0c;点赞258次&#xff0c;收藏837次。一直觉得自己写…...

第四篇:开源生态与蒸馏模型的价值

开篇:从单体模型到生态赋能 DeepSeek-R1 的发布不仅是一款推理模型的亮相,更是一个全新生态的起点。在前三篇中,我们剖析了 R1 的诞生背景、技术核心和性能实力,但它的意义远不止于此。2024 年末,DeepSeek 团队不仅开源了 R1-Zero 和 R1 的完整权重,还推出了基于 Qwen 和…...

C语言——深入理解指针(3)

文章目录 字符指针变量数组指针变量数组指针变量是什么&#xff1f;数组指针变量怎么初始化 二维数组传参的本质函数指针变量函数指针变量的创建函数指针变量的使用两段关于函数的有趣代码typedef关键字 函数指针数组转移表第一种写法&#xff1a;第二种写法&#xff08;函数指…...