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

Flutter:屏幕適配

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

flutter_screenutil

flutter_screenutil是一個(gè)用于在Flutter應(yīng)用程序中進(jìn)行屏幕適配的工具包。它旨在幫助開發(fā)者在不同屏幕尺寸和密度的設(shè)備上創(chuàng)建響應(yīng)式的UI布局。

`flutter_screenutil``提供了一些用于處理尺寸和間距的方法,使得開發(fā)者可以根據(jù)設(shè)備的屏幕尺寸和密度來(lái)動(dòng)態(tài)調(diào)整UI元素的大小和位置。它提供了以下功能:

  • 屏幕適配:flutter_screenutil可以根據(jù)設(shè)備的屏幕尺寸和密度,將設(shè)計(jì)稿上的尺寸轉(zhuǎn)換為適合當(dāng)前設(shè)備的實(shí)際尺寸。這樣,無(wú)論是在小屏幕手機(jī)上還是在大屏幕平板電腦上運(yùn)行應(yīng)用,UI元素都能正確地適配屏幕。

  • 尺寸適配:flutter_screenutil提供了setWidth()setHeight()方法,通過(guò)傳入設(shè)計(jì)稿上的尺寸,可以根據(jù)設(shè)備的屏幕寬度進(jìn)行動(dòng)態(tài)調(diào)整,返回適配后的實(shí)際寬度。

  • 字體適配:flutter_screenutil提供了setSp()方法,可以根據(jù)設(shè)備的屏幕密度進(jìn)行字體大小的適配。通過(guò)傳入設(shè)計(jì)稿上的字體大小,可以根據(jù)當(dāng)前設(shè)備的屏幕密度動(dòng)態(tài)調(diào)整字體大小。

官方文檔
https://pub-web.flutter-io.cn/packages/flutter_screenutil

安裝

flutter pub add flutter_screenutil

原理

UI 設(shè)計(jì)的時(shí)候一般會(huì)按照一個(gè)固定的尺寸進(jìn)行設(shè)計(jì),如 360 x 690 ,實(shí)際設(shè)備分辨率可能是 Google Pixel: 1080 x 1920 等。開發(fā)時(shí)如果直接按照設(shè)計(jì)圖寫死數(shù)值則會(huì)出現(xiàn)最后實(shí)現(xiàn)的效果跟設(shè)計(jì)效果不一致的情況。這個(gè)時(shí)候就可以用比例的方式來(lái)進(jìn)行適配。

將設(shè)計(jì)圖分為固定單位并給這個(gè)單位定義一個(gè)標(biāo)識(shí),例如就叫 w,然后通過(guò)獲取設(shè)備分辨率,使用設(shè)備真實(shí)寬度除以設(shè)計(jì)圖寬度 ,就得到了 1w 代表的真實(shí)寬度:

1w = 設(shè)備真實(shí)寬度 / 設(shè)計(jì)圖寬度

如設(shè)計(jì)圖尺寸是 360 x 690 ,則寬度為 360w ,真實(shí)設(shè)備寬度為 1080 則 1w = 1080 / 360 = 3。

示例

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  
  Widget build(BuildContext context) {
    return ScreenUtilInit(
      // 設(shè)計(jì)尺寸
      designSize: const Size(360, 690),
      // 是否根據(jù)最小寬度和高度調(diào)整文本
      minTextAdapt: true,
      builder: (context, child) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
            useMaterial3: true,
          ),
          home: child,
        );
      },
      child: const MyHomePage(title: '適配'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          Container(
            width: 200,
            height: 200,
            color: Colors.red,
            child: const Text(
              "適配后的的尺寸",
              style: TextStyle(fontSize: 20, color: Colors.white),
            ),
          ),
          const SizedBox(
            height: 20,
          ),
          Container(
            width: ScreenUtil().setWidth(200),
            height: ScreenUtil().setWidth(200),
            color: Colors.blue,
            child: Text(
              "適配后的的尺寸",
              style: TextStyle(
                  fontSize: ScreenUtil().setSp(20), color: Colors.white),
            ),
          ),
        ],
      ),
    );
  }
}

Flutter:屏幕適配,dart 和 Flutter,flutter

常用方法

ScreenUtil().setWidth(540)  //根據(jù)屏幕寬度適配尺寸
ScreenUtil().setHeight(200) //根據(jù)屏幕高度適配尺寸(一般根據(jù)寬度適配即可)
ScreenUtil().radius(200)    //根據(jù)寬度或高度中的較小者進(jìn)行調(diào)整
ScreenUtil().setSp(24)      //字體大小適配

為了方便使用,還支持簡(jiǎn)寫

ScreenUtil().setWidth(540)  =>  540.h
ScreenUtil().setHeight(200) =>  200.w
ScreenUtil().radius(200)    =>  200.r
ScreenUtil().setSp(24)      =>  24.sp

注意:
一般情況下 1.w != 1.h ,除非剛好屏幕分辨率比例與設(shè)計(jì)圖比例一致,所以如果要設(shè)置正方形,切記使用相同的單位,如都設(shè)置相同的 w 或者 h ,否則可能顯示為長(zhǎng)方形。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-638225.html

到了這里,關(guān)于Flutter:屏幕適配的文章就介紹完了。如果您還想了解更多內(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系列文章-Flutter環(huán)境搭建和Dart基礎(chǔ)

    Flutter系列文章-Flutter環(huán)境搭建和Dart基礎(chǔ)

    Flutter是Google推出的一個(gè)開源的、高性能的移動(dòng)應(yīng)用開發(fā)框架,可以用一套代碼庫(kù)開發(fā)Android和iOS應(yīng)用。Dart則是Flutter所使用的編程語(yǔ)言。讓我們來(lái)看看如何搭建Flutter開發(fā)環(huán)境,并了解Dart語(yǔ)言的基礎(chǔ)知識(shí)。 1. 安裝Flutter SDK 首先,訪問(wèn)Flutter官網(wǎng)下載Flutter SDK。選擇適合你操作系統(tǒng)

    2024年02月15日
    瀏覽(17)
  • 【Flutter】下載安裝Flutter并使用學(xué)習(xí)dart語(yǔ)言

    【Flutter】下載安裝Flutter并使用學(xué)習(xí)dart語(yǔ)言

    安裝flutter, 并使用flutter內(nèi)置的dartSDK學(xué)習(xí)使用dart語(yǔ)言。 編輯器: Android Studio fluuter 版本 : flutter_windows_3.13.1 內(nèi)置dartSDK : 3.1.0 dart路徑路徑: flutter安裝路徑bincachedart-sdk flutter下載地址 官網(wǎng)的下載描述蠻詳細(xì)的,直接用就行。 Android Studio 需要到官網(wǎng)下載安裝包。 如果你c盤容

    2024年02月09日
    瀏覽(27)
  • Flutter學(xué)習(xí)2 - Dart

    Dart語(yǔ)言特點(diǎn): Dart 2.0 開始便是強(qiáng)類型語(yǔ)言,而且是靜態(tài)類型的(可以類比Java,C#等) 強(qiáng)類型語(yǔ)言的優(yōu)點(diǎn):所有類型的檢查必須在編譯的時(shí)候完成 前端開發(fā)的 js 語(yǔ)言是弱類型的語(yǔ)言 強(qiáng)類型的語(yǔ)言需要在定義的時(shí)候指定類型,如果不指定,編譯器也可以在賦值的時(shí)候推斷出變

    2024年02月21日
    瀏覽(24)
  • 【Flutter】Dio 強(qiáng)大的Dart/Flutter HTTP客戶端

    Dio是一個(gè)強(qiáng)大的Dart/Flutter HTTP客戶端,支持全局配置、攔截器、FormData、請(qǐng)求取消、文件上傳/下載、超時(shí)等功能。 首先,

    2024年02月11日
    瀏覽(24)
  • Flutter Dart語(yǔ)言(05)異步

    該系列教程主要是為有一定語(yǔ)言基礎(chǔ) C/C++的程序員,快速學(xué)習(xí)一門新語(yǔ)言所采用的方法,屬于在C/C++基礎(chǔ)上擴(kuò)展新語(yǔ)言的模式。 在Dart語(yǔ)言中,雖然沒(méi)有像其他語(yǔ)言(如Java、C++、Python)中的傳統(tǒng)多線程概念,但它采用了異步(asynchronous)編程模型來(lái)處理并發(fā)任務(wù)。Dart使用asy

    2024年02月14日
    瀏覽(22)
  • 無(wú)涯教程-Flutter - Dart簡(jiǎn)介

    Dart是一種開源通用編程語(yǔ)言,它最初是由Google開發(fā)的, Dart是一種具有C樣式語(yǔ)法的面向?qū)ο蟮恼Z(yǔ)言,它支持諸如接口,類之類的編程概念,與其他編程語(yǔ)言不同,Dart不支持?jǐn)?shù)組, Dart集合可用于復(fù)制數(shù)據(jù)結(jié)構(gòu),例如數(shù)組,泛型和可選類型。 以下代碼顯示了一個(gè)簡(jiǎn)單的Dart程序

    2024年02月10日
    瀏覽(24)
  • 【Flutter】Dart/Flutter SDK如何降低版本、回退到指定版本

    【Flutter】Dart/Flutter SDK如何降低版本、回退到指定版本

    因?yàn)閐art3.0以后不再支持 no-sound-null-safety;但是有些項(xiàng)目不得以切換到dart3.0以前繼續(xù)使用運(yùn)行項(xiàng)目 方法1: 通過(guò) 命令,將flutter降級(jí)為當(dāng)前通道的上一個(gè)活動(dòng)版本; 如果沒(méi)有存在老版本則會(huì)提示 flutter downgrade There is no previously recorded version for channel “stable”. 這樣的話則可以通

    2024年02月16日
    瀏覽(22)
  • Flutter Dart語(yǔ)言(04)庫(kù)操作

    該系列教程主要是為有一定語(yǔ)言基礎(chǔ) C/C++的程序員,快速學(xué)習(xí)一門新語(yǔ)言所采用的方法,屬于在C/C++基礎(chǔ)上擴(kuò)展新語(yǔ)言的模式。 引入代碼如下所示: 一般從官方網(wǎng)站:Page 1 | Top packages中 搜索需要的第三方庫(kù),打開項(xiàng)目中的配置文件,名為:pubspec.yaml,找到dependencies選項(xiàng),這

    2024年02月14日
    瀏覽(33)
  • flutter的引擎,Dart語(yǔ)言概括

    flutter的引擎,Dart語(yǔ)言概括

    Dart是谷歌開發(fā)的, 類型安全的 , 面向?qū)ο?的編程語(yǔ)言,被應(yīng)用于 Web、服務(wù)器、移動(dòng)應(yīng)用和物聯(lián)網(wǎng) 等領(lǐng)域。 dart是谷歌在2011年推出的編程語(yǔ)言。谷歌希望使用dart來(lái)取代JavaScript。谷歌是一個(gè)顛覆式創(chuàng)新公司,谷歌退出golang是為了取代java,c++。谷歌退出flutter就是為了取代R

    2023年04月22日
    瀏覽(30)
  • Flutter 四:main.dart簡(jiǎn)單介紹

    Flutter 四:main.dart簡(jiǎn)單介紹

    main.dart簡(jiǎn)單介紹 運(yùn)行結(jié)果

    2024年02月03日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包