Flutter-OverlayState、OverlayEntry

OverlayState是什么?
事实上有一个Overlay的widget,它的createState方法获取的就是OverlayState对象.
Overlay可以认为是一个UI上面的蒙版/浮空层,使用起来类似Stack;
使用:
通过Overlay.of获取OverlayState对象,调用OverlayState.insert添加OverlayEntry,当不需要时候,通过OverlayEntry.remove移除OverlayEntry.
使用示例:
//获取OverlayState
OverlayState overlayState = Overlay.of(context);
//创建OverlayEntry
OverlayEntry _overlayEntry = OverlayEntry(builder:(BuildContext context) => Positioned(child:Icon(Icons.check_circle),));
//显示到屏幕上
overlayState.insert(_overlayEntry);
//移除屏幕
overlayState.remove();

这样就可以在屏幕上显示一个icon
可以通过修改Positioned的left、top
、right、bottom等值来修改在屏幕中的位置;
最后通过overlayState.remove();来移除

Paint画笔
paint的一个重要工作就是确定哪些Element放在同一个Layer
Flutter提供了与Android相似的Paint和Canbas来实现自定义View,使应用更方便完善.
自定义View包括Paint画笔和Canvas画布,俩者缺一不可;俩者通过CustomPainter衔接使用,需要实现paint()绘制方法与shouldRepaint()在刷新布局的时是否需要重绘.
属性:

  1. color:画笔颜色
  2. strokeWidth:画笔粗细
  3. isAntiAlias:是否需要使用抗锯齿
  4. filterQuality:颜色渲染模式质量:高、中、低
  5. shader:着色器,一般用来绘制渐变效果或者imageShader
  6. strokeCap:笔触线帽类型:round、butt、square;笔触类型包括三种,默认为butt即从初始点到终止点;square在初始点与终止点绘制一个方块;round即在初始点与终止点绘制一个圆角
  7. strokeJoin:线结合处,锐角、圆弧、直线
  8. style:画笔样式,填充、描边;style包括俩种样式,默认PaintingStyle.fill为填充,PaintintStyle.stroke为描边
  9. maskFilter:模糊遮照效果;模糊效果包括:nomal内外模糊;solid:内部填充外边模糊,类似于荧光灯效果;outer:内部透明外边模糊;inner:内部模糊,外边正常;
  10. blendMode:颜色混合模式;
  11. colorFilter:颜色渲染模式,一般是矩阵效果来改变
    颜色混合与颜色渲染是俩个很神奇的属性,可以通过众多模式来调整颜色叠加效果,并于背景色衔接(不明白)

你可能感兴趣的:(Flutter-OverlayState、OverlayEntry)