패키지, 저장소 및 앱 카테고리 검색

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 보장
  • 반응형 UI 테스트 간소화
  • 크로스 플랫폼 모바일 앱 빌드

주요 기능

  • 자동 화면 스케일링
  • 필수 최소 구성
  • 경량이고 성능이 뛰어남
  • 동적 폰트 크기 조정을 지원
  • 기존의 플러터 프로젝트와 원활하게 통합됩니다

적합한 대상

  • 간단한 화면 적응을 찾는 개발자
  • 엄격한 마감일이 있는 프로젝트
  • 다양한 기기 크기에 대응하는 앱
  • 유지보수를 우선시하는 팀
  • 초보자에서 중급자 수준의 Flutter 개발자

고려 사항

  • 복잡한 레이아웃에 맞추기 위해 세부 조정이 필요할 수 있습니다
  • 완전한 미디어 쿼리 시스템과 비교해 사용자 정의가 제한됨
  • 기본적인부터 중간 수준의 반응성 요구 사항에 가장 적합
  • 매우 동적인 또는 애니메이션 처리된 UI에는 적합하지 않음
  • 정확한 화면 치수 감지에 의존함

원본 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

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.