#Flutter#Widget#RepaintBoundary

在開發專案的過程中,常常會需要將畫面轉換成圖片,例如:在問題回報時附上 APP 截圖、分享邀請小卡、需包含各種資訊加簽名的螢幕截圖。
這時候就可以使用 RepaintBoundary ,原本他是將 Widget 獨立渲染防止不必要的重繪的,利用 RenderRepaintBoundarytoImage 可以轉換成 ui.Image ,再轉換成 Uint8List 就可以做很多事情了。

Preview


Widget 顯示

儲存到相簿

分享



#Flutter#Dart#Widget

使用一些套件時發現必須呼叫套件底層的 Function,這時候就要利用 GlobalKey。

宣告一個 GlobalKey

final GlobalKey<MyState> _myKey = GlobalKey();

加入到需要呼叫的 Widget

MyWidget(
    key: _myKey,
),

Widget State 內的 Function 必須是 Public

class MyState extends State<MyWidget> {
    foo() {
        // some code
    }
}

呼叫

_myKey.currentState!.foo();