搜索插件、代码仓与 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

所属分类

源码仓库

使用此插件的项目

暂无相关数据。