Flutter loading

如何和原生APP系統自帶的一樣實現一個通用的loading?


有多種實現方式,這裡舉例兩種:

第一:用Overlay

 1 Directionality(
 2     child: Overlay(
 3       initialEntries: [
 4         OverlayEntry(
 5           builder: (BuildContext _context) {
 6             return 自定義widget;
 7           },
 8         ),
 9       ],
10     ),
11     textDirection: TextDirection.ltr,
12 );

 

第二:用Dialog

WillPopScope(
	onWillPop: () async => _loadingDismissible,
	child: Center(
	  child: SizedBox(
	    width: 166,
	    height: 166,
	    child: Dialog(
	        backgroundColor: Colors.transparent,
	        insetAnimationDuration: Duration(milliseconds: 100),
	        child: 自定義widget),
	  ),
	),
);

  

效果圖:

 

示例

 

完整程式碼,jd_loading