- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 flutter开发环境搭建即多版本flutter sdk管理
安装jdk,下载地址:选择需要的安装包,安装完成后设置环境变量安装android studioandroid studio安装flutter、dart插件安装dart sdk,下载地址:安装完成后设置环境变量使用fvm进行多版本的flutter sdk管理安装fvm:cmd执行pub global activate fvmfvm install 2.2.22.2.2是flutter sdk的版本号,根据需要修改其他的fvm的命令请自行查阅使用Sidekick工具进行flu.
2021-07-21 18:02:38 484 2
原创 TabPageSelectorIndicator(一个指定背景颜色、边框颜色和大小的圆形指示器)
TabPageSelectorIndicatorTabPageSelectorIndicator是一个指定背景颜色、边框颜色和大小的圆形指示器,用法如下:TabPageSelectorIndicator( backgroundColor: Colors.blue, borderColor: Colors.red, size: 100,)效果如下:TabPageSelectorIndicator是一个相对简单的控件,其实质就是一个Container,源代码如下:@override
2021-07-20 16:02:56 373
原创 AnimatedList
AnimatedListAnimatedList提供了一种简单的方式使列表数据发生变化时加入过渡动画,下面是一种动画效果:AnimatedList主要属性如下表。属性说明itemBuilder一个函数,列表的每一个索引会调用,这个函数有一个animation参数,可以设置成任何一个动画initialItemCountitem的个数scrollDirection滚动方向,默认垂直controllerscroll控制器列表数据的插入和删除有进出场动画
2021-06-17 14:05:20 135
原创 AnimatedIcon
AnimatedIcon我们都知道Flutter系统中提供了大量的图标,但你是否知道Flutter还提供了很多动画图标,想要使用这些动画图标需要使用AnimatedIcon控件,首先需要设置图标,代码如下:AnimatedIcon( icon: AnimatedIcons.view_list, ...)还需要设置 progress , progress 用于图标的动画,设置如下:import 'package:flutter/material.dart';class Test ext
2021-06-17 13:55:44 376
原创 AnimatedCrossFade
AnimatedCrossFadeAnimatedCrossFade组件让2个组件在切换时出现交叉渐入的效果,因此AnimatedCrossFade需要设置2个子控件、动画时间和显示第几个子控件,用法如下:AnimatedCrossFade( duration: Duration(seconds: 1), crossFadeState: _showFirst ? CrossFadeState.showFirst : CrossFadeState.showSecond, first
2021-06-17 13:52:17 403
原创 AnimatedContainer
AnimatedContainerFlutter中很多用于动画的控件,这篇文章介绍动画控件 AnimatedContainer ,我们可以通俗的理解AnimatedContainer是带动画功能的Container,关于Container的详细介绍可以查看Flutter Widgets 之 Container,这篇详细介绍了Container的用法。AnimatedContainer只需要提供动画开始值和结束值,它就会动起来并不需要我们主动调用 setState 方法。 变化AnimatedContai
2021-06-17 13:49:10 346
原创 AnimatedBuilder
AnimatedBuilderAnimatedBuilder可以让我们轻松的构建动画控件,下面的案例是让flutter logo图片旋转,代码如下:class _TestState extends State<Test> with TickerProviderStateMixin {AnimationController animationController;@overridevoid initState() { animationController = Anim
2021-06-17 13:44:52 257
原创 AnimatedAlign
AnimatedAlignAnimatedAlign组件方便我们构建位置动画,基本用法如下:var _alignment = Alignment.topLeft;@override Widget build(BuildContext context) { return Container( width: 200, height: 200, color: Colors.lightBlue, child: AnimatedAlign(
2021-06-17 13:42:29 111
原创 ScrollPhysics(可滚动组件的滚动特性)
ScrollPhysicsScrollPhysics并不是一个组件,它定义了可滚动组件的物理滚动特性。例如,当用户达到最大滚动范围时,是停止滚动,还是继续滚动。滚动组件(CustomScrollView、ScrollView、GridView、ListView等)的 physics 参数表示此属性,系统提供的ScrollPhysics有:AlwaysScrollableScrollPhysics总是可以滑动,用法如下:CustomScrollView( physics: AlwaysScro
2021-06-17 11:49:38 1213
原创 AlignTransition(子控件动画)
AlignTransition对Align子控件位置变换动画,用法如下:@override void initState() { _animationController = AnimationController(duration: Duration(seconds: 2), vsync: this); _animation = Tween<AlignmentGeometry>( begin: Alignment.topLeft,
2021-06-17 11:46:54 234
原创 Align和Center
AlignAlign和Center控件都是控制子控件位置的控件。Align基本用法:Container( color: Colors.lightBlue, width: 200, height: 200, child: Align( child: Text('唐德',style: TextStyle(color: Colors.white,fontSize: 20),), ),)Align默认居中对齐,效果如下;当然还可以设置其他对齐方法,比如 bottomRi
2021-06-17 11:45:08 422
原创 AboutDialog
AboutDialogAboutDialog用于描述当前App信息,底部提供2个按钮:查看许可按钮和关闭按钮。AboutDialog需要和showAboutDialog配合使用,用法如下:showAboutDialog( context: context, applicationIcon: Image.asset( 'images/bird.png', height: 100, width: 100, ), applicationName: '应用程序', a
2021-06-17 11:19:02 251
原创 提示窗口(AlertDialog、CupertinoAlertDialog、SimpleDialog、Dialog)
AlertDialog当应用程序进行重要操作时经常需要用户进行2次确认,以避免用户的误操作,比如删除文件时,一般会弹出提示“是否要删除当前文件”,用户点击确认后才会进行删除操作,这时我们可以使用提示框(AlertDialog或者CupertinoAlertDialog)。根据设计的不同,我们可以选择Material风格的AlertDialog或者Cupertino(ios)风格的CupertinoAlertDialog,Material风格基础用法如下:RaisedButton( child:
2021-06-17 11:15:23 590
原创 Chip类控件(Chip、InputChip、ChoiceChip、FilterChip、ActionChip)
RawChipMaterial风格标签控件,此控件是其他标签控件的基类,通常情况下,不会直接创建此控件,而是使用如下控件:ChipInputChipChoiceChipFilterChipActionChip如果你想自定义标签类控件时通常使用此控件。RawChip可以通过设置 onSelected 被选中,设置 onDeleted 被删除,也可以通过设置 onPressed 而像一个按钮,它有一个 label 属性,有一个前置(avatar)和后置图标(deleteIcon)。基本用法
2021-06-17 11:09:14 1437
原创 AbsorbPointer(禁止用户输入的控件)
AbsorbPointerAbsorbPointer是一种禁止用户输入的控件,比如按钮的点击、输入框的输入、ListView的滚动等,你可能说将按钮的onPressed设置为null,一样也可以实现,是的,但AbsorbPointer可以提供多组件的统一控制,而不需要你单独为每一个组件设置。用法如下:AbsorbPointer( child: Row( children: <Widget>[ RaisedButton(onPressed: (){},),
2021-06-17 10:46:56 448
原创 AboutListTile
AboutDialogAboutDialog用于描述当前App信息,底部提供2个按钮:查看许可按钮和关闭按钮。AboutDialog需要和showAboutDialog配合使用,用法如下:showAboutDialog( context: context, applicationIcon: Image.asset( 'images/bird.png', height: 100, width: 100, ), applicationName: '应用程序', a
2021-06-15 17:38:45 137
原创 windows下mingw静态编译qt5.9原码
一、 编译前的准备1、 下载qt并安装 下载地址:随便选择一个版本的下载安装,在安装时如果不确定需要使用到哪些插件;就完全安装。2、 安装Perl 下载地址:下载时选择5.12或则更高的版本,安装时在添加环境变量的复选框上打钩3、 安装Python 下载地址:下载时选择2.7或则更高的版本,安装时在添加环境变量的复选框上打钩4、 安装Ruby 下载地址:下载时选择1.9.3或则更高的版本,安装时在添加环境变量的复选框上打钩5、 添加qt的环境变量二、 测试上述安装1、 gcc
2021-06-07 20:30:50 794 3
原创 linux中网络编程I/O模型---epoll
linux中网络编程I/O模型—epoll(异步I/O)epoll(异步I/O)模型使用,使用epoll模型需要用到一下3个函数://创建一个epoll的句柄,size用来告诉系统内核要监听的文件描述符的数量//注:使用完epoll_create创建的句柄后需要closeint epoll_create(int size);//epoll_ctl注册需要监听的事件类型。参数列表:ep...
2019-02-22 17:02:46 137
原创 linux中网络编程I/O模型---poll
linux中网络编程I/O模型—poll(多路复用I/O)poll函数原型:int poll(struct pollfd *fds, unsigned int nfds, int timeout);struct pollfd{int fd; //文件描述符short events; //需要监听的事件short reevents; //实际发...
2019-02-22 16:28:19 226
原创 linux中多线程同步对象
linux中多线程c++编程同步对象的使用1、mutex2、condtion variable3、reader-writer-lock对于多线程程序来说,同步是指在同一时刻只有有个线程能够访问某一公共资源;在linux中可以使用互斥锁(mutex)、条件变量(condtion varirable)、读写锁(reader-writer-lock)和信号量(semphore)来实现资源同步。1、m...
2019-02-22 14:50:03 431
原创 C语言实现顺序线性表(Sequentail linear list)
一、理解顺序线性表的本质1、顺序线性表的本质是数组,对常见的数组比如像int[10],char[64]诸如此类的基本数据类型的数组;但是顺序线性表是能够存放结构体,指针等一系列的数据。二、顺序线性表api的申明如下:typedef void SeqNode; //顺序线性表的逻辑节点typedef void SeqList;//根据需求(数据容量)创建顺序线性表Se...
2019-01-16 17:31:52 699
原创 C/C++单向链表的简单剖析和实现
一、为什么要写关于单向链表的实现过程 1、加深记忆,以便在以后的工作中能轻松的完成工作 2、便于查阅 3、供大家参考讨论和学习(欢迎指正)二、单向链表的数据推演 1、单向链表的单个节点 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190116114509692.png)...
2019-01-16 11:46:25 404
原创 使用vs的命令行工具静态编译Qt4.8.5
一、下载Qt4.8.5的源码:下载地址http://iso.mirrors.ustc.edu.cn/qtproject/archive/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.zip二、解压Qt源码将其放在合适的目录下 **三、安装你想要使用的vs的版本(确保Qt能被编译为相应的能在vs中使用的版本)四、修改源码中的文件a.删除源码...
2019-01-11 13:57:52 354
原创 windows环境下编译Openssl
一、关于openssl的编译a、如果使用vc6.0编译,首先需要安装完整版的VC6.0b、编译过程如下 1、cmd切换到vc6.0的安装目录 2、运行如下命令 vavars32.bat 3、切换到openssl的源码目录 perl Configure VC-WIN32 --prefix=c:/openssl :ms/do_ms ...
2019-01-11 13:53:25 296
原创 vc++6.0搭建QT开发环境
**无论是vc还是vs那都是运行在windows平台的,所有linux平台的就没有必要往下阅读了开发前的准备:1、下载并安装vc++6.0(需要完整版,绿色版不行)2、下载qt源码3、将qt源码解压放在你习惯的目录下(下面的例子我全是用“C:/Qt/4.5.3”目录举例,我编译的是4.5.3的版本)配置环境变量1、配置vc的环境变量,在环境变量的path中添加vc98的安装目录(如:...
2019-01-11 13:50:23 3524
C/C++实现单向链表
2019-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人