国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter 填坑錄 (不定時(shí)更新)

這篇具有很好參考價(jià)值的文章主要介紹了Flutter 填坑錄 (不定時(shí)更新)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一,內(nèi)存爆表 >?圖片緩存

/// State基類
class BaseState<T extends StatefulWidget> extends State<T>
    with
        AutomaticKeepAliveClientMixin,
        WidgetHelper,
        DialogHelper,
        EventListener {
  @mustCallSuper
  void initState() {
    if (isListenEvent()) {
      EventManager.instance.listen(this);
    }

    //指定圖片緩存大小,默認(rèn)是1000
    PaintingBinding.instance.imageCache.maximumSize = 10;

    super.initState();
    LogEvent.onPageStart('${this}');
  }


  @mustCallSuper
  void dispose() {
    super.dispose();
    deactivate();
    
    // 清理緩存
    PaintingBinding.instance.imageCache.clear();

    LogEvent.onPageEnd('${this}');
    if (isListenEvent()) {
      EventManager.instance.cancel(this);
    }
  }

二,iOS 字體縮小/消失/擠出屏幕等問(wèn)題

import 'dart:math' as math;

import 'package:flutter/material.dart';

class NoScaleTextWidget extends StatelessWidget {
  final Widget child;

  const NoScaleTextWidget({
    Key key,
    @required this.child,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaxScaleTextWidget(
      max: 1.0,
      child: child,
    );
  }
}

class MaxScaleTextWidget extends StatelessWidget {
  final double max;
  final Widget child;

  const MaxScaleTextWidget({
    Key key,
    this.max = 1.2,
    @required this.child,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    var data = MediaQuery.of(context);
    var scale = math.min(max, data.textScaleFactor);
    return MediaQuery(
      data: data.copyWith(textScaleFactor: scale),
      child: child,
    );
  }
}

class ScaleTextWidget extends StatelessWidget {
  final double scale;

  final Widget child;

  const ScaleTextWidget({
    Key key,
    @required this.scale,
    @required this.child,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    var data = MediaQuery.of(context);
    var scale = this.scale ?? data.textScaleFactor;
    return MediaQuery(
      data: data.copyWith(textScaleFactor: scale),
      child: child,
    );
  }
}

  @override
  Widget build(BuildContext context) {
    loadData();
    return MaterialApp(
      builder: (ctx, w) {
        return MaxScaleTextWidget(
          max: 1.0,
          child: w,
        );
      },
      theme: ThemeData(
        primarySwatch: Colors.blue,
        textTheme: TextTheme(
            title: TextStyles.titleStyle, button: TextStyles.titleStyle),
      ),
      home: homePage,

三,未授權(quán)導(dǎo)致圖片保存失敗

//每次都提示圖片已保存成功,相冊(cè)里并沒(méi)有圖片
  void _onSaveImage() async {
    print("_onImageSaveButtonPressed");
    final QrPainter painter = QrPainter(
      data: _appDownloadLink,
      color: const Color(0xff222222),
      emptyColor: const Color(0xffffffff),
      version: 4,
      gapless: true,
    );

    final ByteData imageData = await painter.toImageData(300.0);
    final result = await ImageGallerySaver.save(imageData.buffer.asUint8List());
    if (result) {
      toast("二維碼已成功保存到手機(jī)相冊(cè)");
    } else {
      toast("二維碼保存到手機(jī)相冊(cè)失敗, 請(qǐng)查看App權(quán)限");
    }
  }
  @override
  void initState() {
    super.initState();
// 先要授權(quán)訪問(wèn)相冊(cè)
    PermissionHandler().requestPermissions(<PermissionGroup>[
      PermissionGroup.storage, // 在這里添加需要的權(quán)限
    ]);

  }

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-721603.html

到了這里,關(guān)于Flutter 填坑錄 (不定時(shí)更新)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flutter 實(shí)現(xiàn)定時(shí)滾動(dòng)的公告欄的兩種不錯(cuò)方式

    flutter 實(shí)現(xiàn)定時(shí)滾動(dòng)的公告欄的兩種不錯(cuò)方式

    自定義一個(gè)類繼承StatefulWidget 所有公告信息存放在list里 邏輯如下 我們可以發(fā)現(xiàn)啟動(dòng)了一個(gè)timer計(jì)時(shí)器計(jì)時(shí)5秒,hasClients檢查其目標(biāo)對(duì)象(我們用的是listview)是否被渲染,沒(méi)有被渲染會(huì)出大亂子 另外,currentPostion根據(jù)當(dāng)前偏移量得出,下一個(gè)position根據(jù)當(dāng)前偏移量加上一個(gè)v

    2024年01月22日
    瀏覽(24)
  • Flutter在Android上的熱更新方案

    Flutter在Android上的熱更新方案

    flutter sdk版本:v3.0.3 dart版本:v2.17.5 1.1 FlutterApplication啟動(dòng)流程 按照安卓原生啟動(dòng)流程,當(dāng)繼承FlutterApplication且在AndroidManifest.xml將application:name設(shè)置后,除Content Provider初始化,Application流程將首先執(zhí)行,此時(shí)FlutterApplication代碼如下: FlutterApplication的onCreate只執(zhí)行了FlutterLoader類

    2024年02月07日
    瀏覽(32)
  • Flutter 3.16 中帶來(lái)的更新

    Flutter 3.16 中帶來(lái)的更新

    Flutter 3.16 中帶來(lái)的更新 從此版本開(kāi)始,Material 3 成為新的默認(rèn)主題。你可以通過(guò)在 MaterialApp 主題中指定 useMaterial3: false 來(lái)選擇不使用 Material 3,但 Material 2 最終將被棄用并刪除。 你仍然可以通過(guò)在主題中指定來(lái)選擇退出 M3 版本的 Material 庫(kù)MaterialApp,但 Material 2 最終將被棄用

    2024年02月04日
    瀏覽(31)
  • Flutter 版本更新 和 dart SDK版本跟新

    Flutter 版本更新 和 dart SDK版本跟新

    報(bào)錯(cuò)啦怎么辦? 找到了我的電腦里面dart SDK的位置, D:Flutterflutterbincachedart-sdk 我認(rèn)為是dart的版本不夠的時(shí)候,我就去下載新的dart SDK(下載地址:Archive | Dart ),然后去替換我之前的dart-sdk,然后就出現(xiàn)問(wèn)題了,官方的flutter sdk中已經(jīng)自帶了匹配版本的dart sdk。所以不要自

    2024年02月14日
    瀏覽(25)
  • Flutter 3.16 發(fā)布,快來(lái)看有什么更新吧

    Flutter 3.16 發(fā)布,快來(lái)看有什么更新吧

    參考原文:https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1 Flutter 又又又發(fā)布新季度更新啦,同時(shí)隨著而來(lái)的還有 Dart 3.2,本次 3.16 開(kāi)始 Material 3 會(huì)成為新的默認(rèn)主題,另外 Android 也迎來(lái)了 Impeller 的預(yù)覽支持,另外還有 Flutter Casual Games Toolkit 的重大更新。 最重要的是,Im

    2024年02月04日
    瀏覽(22)
  • Android Studio更新新版本后無(wú)法創(chuàng)建flutter項(xiàng)目

    Android Studio更新新版本后無(wú)法創(chuàng)建flutter項(xiàng)目

    最新更新了AndroidStudio版本,發(fā)現(xiàn)無(wú)法創(chuàng)建flutter項(xiàng)目。 dart和flutter插件確認(rèn)都已安裝,該有的環(huán)境配置都已配置。 最后與同事的插件作比較發(fā)現(xiàn)是Android APK Support這個(gè)插件沒(méi)勾選。 勾選后,點(diǎn)擊右下角的apply,重啟AndroidStudio。 然后去點(diǎn)擊File--New--New Flutter Project。

    2024年02月09日
    瀏覽(18)
  • Dart 3.2 更新,F(xiàn)lutter Web 的未來(lái)越來(lái)越明朗

    Dart 3.2 更新,F(xiàn)lutter Web 的未來(lái)越來(lái)越明朗

    參考原文:https://medium.com/dartlang/dart-3-2-c8de8fe1b91f 本次跟隨 Flutter 3.16 發(fā)布 的 Dart 3.2 ,包含有:私有 final 字段的非空改進(jìn)、新的 interop 改進(jìn)、對(duì) DevTools 中的擴(kuò)展支持、以及對(duì) Web 路線圖的更新,包括對(duì) Wasm 的Web 組件支持。 最重要的就是 Wasm 的Web 組件支持。 自 Dart 2.12 發(fā)布

    2024年02月05日
    瀏覽(19)
  • flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn)

    flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn)

    flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn) 在開(kāi)發(fā)過(guò)程中,經(jīng)常遇到需要更新下載新版本的apk文件,之后進(jìn)行應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用。我們?cè)趂lutter工程中實(shí)現(xiàn)下載apk,判斷當(dāng)前版本與需要更新安裝的版本進(jìn)行比對(duì)判斷,通過(guò)判斷VersionCode來(lái)確定下載

    2024年02月02日
    瀏覽(60)
  • Google I/O 2023 - Flutter 3.10 發(fā)布,快來(lái)看看有什么更新吧

    Google I/O 2023 - Flutter 3.10 發(fā)布,快來(lái)看看有什么更新吧

    核心部分原文鏈接:https://medium.com/flutter/whats-new-in-flutter-3-10-b21db2c38c73 雖然本次 I/O 的核心 keynote 主要是 AI ,但是按照慣例依然發(fā)布了新的 Flutter 穩(wěn)定版,不過(guò)并非大家猜測(cè)的 4.0,而是 3.10 ,F(xiàn)lutter 的版本號(hào)依然那么的出人意料。 Flutter 3.10 主要包括有對(duì) Web、mobile、graphics、

    2024年02月04日
    瀏覽(45)
  • Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)

    Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)

    Flutter實(shí)現(xiàn)點(diǎn)擊頭像更新頭像的功能,需要實(shí)現(xiàn)本地相冊(cè)選取和調(diào)用相機(jī)兩種方式的實(shí)現(xiàn)。 用InkWell包住了我們的頭像,這樣來(lái)監(jiān)聽(tīng)點(diǎn)擊頭像的事件 InkWell 是一個(gè)非常常用且功能強(qiáng)大的小部件。InkWell 可以用于為Flutter應(yīng)用添加水波紋效果,以及捕獲和處理用戶的點(diǎn)擊手勢(shì)。 In

    2024年02月15日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包