Flutter-OverlayState、OverlayEntry

OverlayState是什么?
事實(shí)上有一個(gè)Overlay的widget,它的createState方法獲取的就是OverlayState對象.
Overlay可以認(rèn)為是一個(gè)UI上面的蒙版/浮空層,使用起來類似Stack;
使用:
通過Overlay.of獲取OverlayState對象,調(diào)用OverlayState.insert添加OverlayEntry,當(dāng)不需要時(shí)候,通過OverlayEntry.remove移除OverlayEntry.
使用示例:
//獲取OverlayState
OverlayState overlayState = Overlay.of(context);
//創(chuàng)建OverlayEntry
OverlayEntry _overlayEntry = OverlayEntry(builder:(BuildContext context) => Positioned(child:Icon(Icons.check_circle),));
//顯示到屏幕上
overlayState.insert(_overlayEntry);
//移除屏幕
overlayState.remove();

這樣就可以在屏幕上顯示一個(gè)icon
可以通過修改Positioned的left、top
、right、bottom等值來修改在屏幕中的位置;
最后通過overlayState.remove();來移除

Paint畫筆
paint的一個(gè)重要工作就是確定哪些Element放在同一個(gè)Layer
Flutter提供了與Android相似的Paint和Canbas來實(shí)現(xiàn)自定義View,使應(yīng)用更方便完善.
自定義View包括Paint畫筆和Canvas畫布,倆者缺一不可;倆者通過CustomPainter銜接使用,需要實(shí)現(xiàn)paint()繪制方法與shouldRepaint()在刷新布局的時(shí)是否需要重繪.
屬性:

  1. color:畫筆顏色
  2. strokeWidth:畫筆粗細(xì)
  3. isAntiAlias:是否需要使用抗鋸齒
  4. filterQuality:顏色渲染模式質(zhì)量:高、中、低
  5. shader:著色器,一般用來繪制漸變效果或者imageShader
  6. strokeCap:筆觸線帽類型:round、butt、square;筆觸類型包括三種,默認(rèn)為butt即從初始點(diǎn)到終止點(diǎn);square在初始點(diǎn)與終止點(diǎn)繪制一個(gè)方塊;round即在初始點(diǎn)與終止點(diǎn)繪制一個(gè)圓角
  7. strokeJoin:線結(jié)合處,銳角、圓弧、直線
  8. style:畫筆樣式,填充、描邊;style包括倆種樣式,默認(rèn)PaintingStyle.fill為填充,PaintintStyle.stroke為描邊
  9. maskFilter:模糊遮照效果;模糊效果包括:nomal內(nèi)外模糊;solid:內(nèi)部填充外邊模糊,類似于熒光燈效果;outer:內(nèi)部透明外邊模糊;inner:內(nèi)部模糊,外邊正常;
  10. blendMode:顏色混合模式;
  11. colorFilter:顏色渲染模式,一般是矩陣效果來改變
    顏色混合與顏色渲染是倆個(gè)很神奇的屬性,可以通過眾多模式來調(diào)整顏色疊加效果,并于背景色銜接(不明白)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容