搜尋套件、儲存庫與 APP 分類

flutter_autosize_screen 封面
套件詳情v1.0.1

flutter_autosize_screen

一種低成本的Flutter螢幕適配解決方案

近 30 天下載
38
喜歡數
11
Pub 分數
55

安裝套件

flutter pub add flutter_autosize_screen

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

flutter_autosize_screen 是一個輕量級的 Flutter 套件,旨在簡化各種裝置尺寸的螢幕適應。它透過根據螢幕尺寸自動縮放元件,為響應式 UI 開發提供高效且低成本的解決方案。該套件確保佈局外觀一致,無需複雜的媒體查詢或手動計算。適用於目標螢幕解析度多樣化的應用程式,它簡化了適應過程,同時保持效能與視覺保真度。

適用情境

  • 為不同螢幕尺寸調整版面
  • 使用最少的代碼創建響應式設計
  • 確保在各種裝置上保持一致的使用者介面
  • 簡化響應式 UI 測試
  • 建構跨平台移動應用

主要特色

  • 自動螢幕縮放
  • 最小設定需求
  • 輕量且高效
  • 支援動態字體大小
  • 可與現有的 Flutter 項目無縫整合

適合對象

  • 尋求簡單螢幕適配的開發者
  • 專案有緊迫的截止日期
  • 針對多種設備尺寸的應用
  • 注重可維護性的團隊
  • 初學者到中級的 Flutter 開發者

使用建議

  • 可能需要針對複雜版面進行微調
  • 與完整的媒體查詢系統相比,自訂選項有限
  • 最適合基本到中等程度的響應性需求
  • 不太適合高度動態或動畫豐富的使用者介面
  • 依賴於準確的螢幕尺寸檢測

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案)
100% 还原 UI,只需要按照设计图写的宽高写即可

先看图片,设置的标准宽度是 360

iPhone 8 ------------------------------- iPhone 11 :
iPhone 12 pro max --------------------- ipad air :

android 图

768x1280-320dpi----------10801920-420dpi----------1440x2560-560dpi

web 图

随着拉长屏幕 ,慢慢的 宽度会大于高度,当大于的时候 ,会以 高度 为 基准。

使用

引用
# 现在最新版本是 1.0.1
flutter_autosize_screen: ^{LAST_VERSION}
初始化
  1. 在main方法的第一行就初始化,下面的基准一般以宽度为基准,直接写Ui设计图的宽度尺寸,如果是横屏的状态的 下面的 360 就是以高度为基准
void main() {
  // 设置基准 或者以苹果6,375 为标准, isAutoTextSize 表示文字是否随着系统的字体大小更改而更改,默认是 true
  AutoSizeUtil.setStandard(360,isAutoTextSize: true);

  // 使用 runAutoApp 来代替 runApp
  // import 'package:flutter_autosize_screen/binding.dart';
  runAutoApp(const MyApp());

}

  1. 替换根 MaterialApp 的 MediaQuery
MaterialApp(
      title: 'Autosize Demo',
      /// 替换,这样可以在以后 使用 MediaQuery.of(context) 得到 正确的Size
      builder: AutoSizeUtil.appBuilder,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: HomePage(),
      ),
    )

  1. 获取Size
AutoSizeUtil.getScreenSize()
//或者
MediaQuery.of(context).size
  1. 直接按照设计图的尺寸写即可
Container(
    alignment: Alignment.center,
    height: 60,
    width :60,
    color: Colors.redAccent,
    child: Text(
      "直接按照设计图写尺寸",
    ),
  )
  1. 获取真正的大小,比如 kToolbarHeight 是 56
// 一下方法获取到真正的大小,然后设置到 toolbar上
AutoSizeUtil.getRealSize(kToolbarHeight)
  1. 切记 不能使用 window 获取 size 或者是 获取 MediaQuery
    window.physicalSize
    MediaQueryData.fromWindow(window)

下一个目标

因为从根修改了屏幕宽高, 会引起一些系统Widget,有可能比正常的大或者小,比如toorbar的高度默认是 kToolbarHeight = 56.0,这样如果把宽度标准设置成112的话,那这kToolbarHeight就会显得很高, 还有 Text (bodyText2) 默认的是 14,也会非常大,所以 下一个计划是 还原一下默认的系统 widget。大家有好的建议 也可以提给我

原理

掘金

Thank

FlutterTest

所屬分類

原始碼儲存庫

使用此套件的專案

暫無相關資料。