dart 在Flutter中裁剪我的列表视图的屏幕截图小部件

vlju58qv  于 2023-06-19  发布在  Flutter
关注(0)|答案(2)|浏览(147)

我有一个列表视图,它在一个屏幕截图小部件中,每次执行一个函数时都会截取一个屏幕截图。它工作得很好,但我的问题是,在列表视图上的项目达到一定数量后(在本例中为10+),所拍摄的屏幕截图会在该数量后剪辑它们,它只需要当时屏幕上可见项目的屏幕截图。有没有办法把整个屏幕截图?代码如下:

    • 屏幕截图**
body: Screenshot(
        controller: screenshotController,
        child: Container(
          width: double.infinity,
          height: double.infinity,
          child: ListView(
            children: [
              SingleChildScrollView(
              ---- list items here ----
    • 如何显示图像**
return showDialog(
    context: context,
    builder: (context) => GestureDetector(
          onTap: () => Navigator.pop(context),
          child: InteractiveViewer(
            boundaryMargin: EdgeInsets.zero,
            minScale: 1,
            maxScale: 4,
            child: AlertDialog(
              content: Container(
                width: MediaQuery.of(context).size.height / 2,
                height: MediaQuery.of(context).size.height,
                decoration: BoxDecoration(
                    image: DecorationImage(
                        image: NetworkImage(url), fit: BoxFit.contain)),
              ),
            ),
          ),
        ));

所以基本上,我在这里做错了什么,因为所拍摄的屏幕截图只拍摄可见屏幕的屏幕截图,而不是我试图放入代码的整个主体(它只拍摄屏幕上可见列表视图项目的图片,所有超过10个项目的内容都被剪辑)。

7rtdyuoh

7rtdyuoh1#

让它在列内,然后它将自动工作。

Container(
              width: double.infinity,
              height: double.infinity,
              child: Column(
    children[
     ListView(
    
    ]
xzlaal3s

xzlaal3s2#

添加这两个属性来解决问题

screenshotController
        .captureFromWidget(
      screenShotWidet(),
      delay: const Duration(milliseconds: 100), // for fetching 
      targetSize: const Size(800, 10000), // this should be max to sycn
    )

相关问题