Flutter - QA

Flutter 专栏收录该内容
3 篇文章 0 订阅

截图

class PngHome extends StatefulWidget {
     PngHome({Key key}) : super(key: key);
  
     @override
     _PngHomeState createState() => _PngHomeState();
   }
  
   class _PngHomeState extends State<PngHome> {
     GlobalKey globalKey = GlobalKey();
  
     Future<void> _capturePng() async {
       RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();
       ui.Image image = await boundary.toImage(pixelRatio: window.devicePixelRatio);
       ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
       Uint8List pngBytes = byteData.buffer.asUint8List();
       print(pngBytes);
     }
  
     @override
     Widget build(BuildContext context) {
       return RepaintBoundary(
         key: globalKey,
         child: Center(
           child: FlatButton(
             child: Text('Hello World', textDirection: TextDirection.ltr),
             onPressed: _capturePng,
           ),
         ),
       );
     }
   }

注意

boundary.toImage(pixelRatio: window.devicePixelRatio);

中的pixelRatio表示设备像素比。不传默认是1,截图会比较模糊;设置为当前设备的像素比后,在iOS中如果直接用 [UIImage imageNamed:imageFileName]; 获取,图片的像素 = 设备像素*缩放因子,比较大。如果想得到原尺寸,需要使用下面方式获取。

NSData *imageData = [NSData dataWithContentsOfFile:imageFileName];
UIImage *img = [UIImage imageWithData:imageData scale:[UIScreen mainScreen].scale];

TextField 输入文字过长不显示

出现这种情况,可能是TextField布局有问题,尺寸偏小。我遇到的情况是,开始将TextField 的高度设置多小,输入超长后,突然就不显示了,将高度设置高点,解决了。

zsh: command not found: flutter

安装完flutter重启电脑后运行flutter,报zsh: command not found: flutter,想要flutter永久有效,执行以下
在终端打开:vim ~/.zshrc
在里面添加一句:source ~/.bash_profile
然后保存,
执行 source ~/.zshrc,解决!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

细粉条

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值