Как экспортировать виджет в изображение без отображения на экране

#flutter #dart

Вопрос:

У меня есть одна проблема, нужна помощь, я хочу экспортировать виджет в Uint8List, используя параметр RepaintBoundary для BitmapDescriptor.fromBytes()

но это не работает, и это мой код

  import 'dart:typed_data';  import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart';  import 'dart:ui' as ui;  import 'package:flutter/services.dart';  class MarkerWidget extends StatefulWidget {  MarkerWidget({Key? key}) : super(key: key);   GlobalKey widgetKey = GlobalKey();  @override  _MarkerWidgetState createState() =gt; _MarkerWidgetState();   Futurelt;Uint8Listgt; captureWidget() async {  final RenderRepaintBoundary boundary =  widgetKey.currentContext!.findRenderObject()! as RenderRepaintBoundary;  final ui.Image image = await boundary.toImage();  final ByteData? byteData =  await image.toByteData(format: ui.ImageByteFormat.png);  final Uint8List pngBytes = byteData!.buffer.asUint8List();  return pngBytes;  } }  class _MarkerWidgetState extends Statelt;MarkerWidgetgt; {  @override  Widget build(BuildContext context) {  return RepaintBoundary(  key: widget.widgetKey,  child: SizedBox(  width: 150,  height: 50,  child: Row(  children: [  Image.asset("images/download.png", height: 45),  Column(  children: [  Row(  children: const [  Text("Title"),  Text("Sub title"),  ],  ),  const Text("Other description"),  ],  ),  ],  ),  ),  );  } }   

и это код вызывающего абонента

 lt;codegt;  Futurelt;voidgt; gotoNewPosition(CameraPosition cameraPosition) async {   MarkerId mID = MarkerId(cameraPosition.target.latitude.toString());  MarkerWidget image = MarkerWidget();   print("before cupture widget ");  Uint8List widgetByteData = await image.captureWidget();    print("after capture widget...");  //-- create marker  Marker newMarker = Marker(  markerId: mID,  position: cameraPosition.target,  visible: true,  icon: BitmapDescriptor.fromBytes(widgetByteData),  infoWindow: InfoWindow(  title: cameraPosition.target.latitude.toString(),  snippet: "marker desc",    onTap: () {  print("tab on " cameraPosition.target.latitude.toString() " marker...");   }  ));   //-- marker        _mapController!  .animateCamera(CameraUpdate.newCameraPosition(cameraPosition));   setState(() {  myMarkers.add(newMarker);   });  } lt;codegt; 

Это возвращает это сообщение об ошибке [ОШИБКА:flutter/lib/ui/ui_dart_state.cc(209)] Необработанное исключение: оператор проверки Null, используемый для нулевого значения

Как я могу решить эту проблему, спасибо вам. Пурипат.