自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 flutter问题:利用flutter中的状态管理实现依赖于此状态的组件自动更新

我的flutter app使用provider库管理状态。我的项目使用了国际化功能,需要在切换app语言的时候重新渲染一些widget来控制整个app的语言切换。利用flutter widget key 改变后自动刷新机制,使用provider 提供的watch 方法动态地为组件配置key。

2023-06-09 15:24:01 210

原创 flutter问题:auto_route库监听AutoTabsScaffold tab离开的生命周期

使用当前tab initState 过程中的context.tabsRouter ,为其addListener 监听tab变化,利用tab路由的activeIndex 和previousIndex 判断处理,顺利解决问题。auto_route 库6.0.5版本(当前版本)不支持在嵌套路由中使用AutoRouteGuard 路由守卫,导致无法使用守卫控制tab切换流程;我的flutter app使用auto_route库管理路由,我的tab会开启轮询,需要监听当前tab的离开事件来关闭轮询。

2023-06-09 15:14:18 216

原创 Dart中的一些特性与性能优化

利用上述const特性,可以实现常量构造函数,即在多个地方实例化这个对象,如果传入的值相同,多个实例共同引用同一个对象;在使用可空类型的变量时有时候需要在其后加!表示类型断言,这个变量不为null则继续执行,为null抛出异常;Dart在定义变量或函数时,可以在其类型后加?表示这个变量或返回值可以被赋值为null,?Dart中的const关键字在多个地方创建相同的对象时,内存中会只保留一个对象;主要用于标记任何函数中的命名参数,使参数必须传入;主要用于延迟初始化;

2023-05-25 11:23:15 248

原创 Dart中的库

主要有三种:自定义库,系统内置库,和Pub包管理系统中的库。

2023-05-24 18:32:27 119

原创 Dart中的mixins和泛型

mixins可以实现类似多继承的功能。注:mixins的类型是其超类的子类型,上述例子中的实例c is A或者is B都为true。

2023-05-24 17:59:17 138

原创 Dart中的抽象类,多态和接口

抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。

2023-05-24 16:31:28 270

原创 Dart中类的静态成员和继承

Dart中使用static关键字定义类级别的属性与方法,也叫静态成员,静态成员可以通过类不能通过实例直接访问调用;非静态方法可以访问所有静态成员和非静态成员;静态方法只能访问静态成员;

2023-05-24 11:37:55 188

原创 Dart中的类

Dart中的所有东西都是对象,所有对象都继承自Object类。Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类。

2023-05-23 17:15:48 95

原创 Dart中的函数

dart中定义一个函数时可以为函数的返回值指定一个类型,也可以不指定,当指定为void时函数没有返回值;

2023-05-22 16:20:25 138 2

原创 Dart中的类型

List.filled(length, fill)创建的集合也可以指定类型,语法为List.filled(length, fill),不写默认根据fill进行类型推导。使用List.filled(length, fill)创建的集合被指定了长度,只能修改,不能新增,也不能修改集合的长度;dart中通过{}或new Map()创建字典类型,类似js,使用或修改字典的属性通过[‘key’]的方式。在dart中整型使用int关键字声明,浮点型使用double声明,运算符与js中相同。

2023-05-08 16:08:51 197

原创 绝对定位中的元素布局

letf/right + margin-left/margin-right + border-left/border-right + padding-left/padding-right + width共同决定了开启定位元素的水平布局 垂直方同样需要满足top/bottom + margin-top/margin-bottom + border-top/border-bottom + padding-top/padding-bottom + height = 父元素的高度,若发生过度约束处理方式与水平相同。

2021-12-31 17:04:33 227

原创 position定位布局

通过定位可以将元素放在页面中的任意位置。position属性使用position属性为元素开启定位,他的可选值有:static:默认值,元素不开启定位;relative:开启相对定位;absolute:开启绝对定位;fixed:开启固定定位;sticky:开启粘滞定位。offset偏移量在介绍定位前,首先我们要了解偏移量的概念,这里的偏移量可以简单理解为定位元素与定位位置的距离,偏移量有四个,分别是:top,bottom,left,right。top与bottom确定垂直方向上的位置,

2021-06-14 11:32:10 173

原创 浮动布局中的高度塌陷问题

高度塌陷:在浮动布局中,父元素的高度默认被子元素撑开,但当子元素发生浮动时,会从文档流中脱离,此时无法撑起父元素的高度,导致元素的高度丢失,影响页面布局,一般将这种情况叫做高度塌陷。处理方式:为父元素设置高度height,此时高度不再被内容撑开,但会造成 子元素溢出 或 父元素空白。为父元素开启BFC。BFC:全称Block Formatting Context,翻译为块级格式化上下文。它是一个独立的布局环境,或是布局容器,容器内的子元素不会影响到外部。元素开启BFC后的特点:开启BF

2021-06-13 23:18:01 410

原创 float浮动布局

通过浮动布局可以使一个元素向其父元素的左侧或右侧移动,用于元素的横向布局。文档流文档流(normal flow):网页是一个多层结构,通过css可以为每一层设置样式,用户所看到的是最上面的一层,所有层中,最下面的一层叫文档流,文档流是网页的基础。元素脱离文档流的特点:块元素:在页面中不再独占一行,宽度和高度都默认被内容撑开。行内元素:脱离文档流后变为块元素,与脱离文档流后的块元素特点一致。因此元素在脱离文档流后没有块元素与行内元素之分!设置浮动使用float属性为子元素设置浮动。可选值如

2021-06-13 22:17:14 605

原创 display属性

display用于设置元素显示的类型,以下是display的几种常见属性值:1.none元素不在页面中显示,但在dom中存在。与visibility:hidden;的区别:visibility:hidden;不显示但在页面中占据位置;display:none;不在页面中显示也不占位置。2.block将元素设置为块元素。块元素的特点:在页面中独占一行(从上向下排列);默认宽度是父元素的全部;默认高度被内容(子元素)撑开。3.inline将元素设置为行内元素。行内元素的特点:不会

2021-06-13 21:42:35 428

原创 css元素的水平与垂直布局

水平布局一个元素在其父元素水平方向上的位置由margin-left,border-left,padding-left,content(width),padding-right,border-right,margin-right共同决定。一个元素在父元素中时,必须满足以上七个属性值的和等于其父元素内容区的width。若等式未成立,则会把这种情况称为过度约束,此时等式会自动进行调整,调整的情况为:如果七个值中没有为auto的,浏览器自动调整margin-right来配平等式。七个值中width,ma

2021-06-13 21:02:27 710

原创 css盒子模型

盒子模型(box model)又叫盒模型,框模型。CSS将页面中的所有元素都设置为了一个矩形的盒子,之后对页面的布局就变成了将不同盒子摆放到不同的位置。盒子的组成一个盒子包括content(内容区),padding(内边距),border(边框)和margin(外边距)。其中,前三者决定盒子可见框的大小,margin决定盒子的位置。content内容区元素中的所有子元素和文本内容都在内容区进行排列;内容区的大小由width(宽度)和height(高度)来设置;padding内边距内容区与边框

2021-06-13 19:46:21 217

原创 css中的外边距重叠问题

css中的外边距重叠在css中元素间相邻的垂直方向的外边距会发生重叠,这里记录下外边距重叠的几种情况和解决外边距重叠问题的几种方法。一、兄弟元素间的外边距重叠如果外边距为正值,兄弟元素间的相邻垂直外边距会取两者间的较大值。如果外边距一正一负,取两者的和。如果都为负值,取两者中绝对值较大的一个。兄弟元素间的外边距重叠一般情况下不处理。二、父子元素间的外边距重叠当给子元素设置一个外边距时,子元素的外边距会传递给父元素,容易影响到页面布局,此时需要对这种情况进行处理。处理方式如下:1、不使用外

2021-03-16 21:27:33 945

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除