[Flutter] ScreenUtil

GONGΒ·2023λ…„ 6μ›” 29일

Flutter

λͺ©λ‘ 보기
1/5
post-thumbnail

flutter_screenutil νŒ¨ν‚€μ§€μ˜ κ°„λ‹¨ν•œ μ‚¬μš©λ²•μž…λ‹ˆλ‹€

ScreenUtil

  • https://pub.dev/packages/flutter_screenutil
  • Flutter μ•±μ˜ λ°˜μ‘ν˜• λ””μžμΈμ„ μ§€μ›ν•˜κΈ° μœ„ν•œ νŒ¨ν‚€μ§€
  • Flutter 앱은 λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€μ—μ„œ 싀행될 수 있으며, λ””λ°”μ΄μŠ€λ§ˆλ‹€ ν™”λ©΄μ˜ 크기와 해상도, ν”½μ…€ 밀도가 λ‹€λ₯Ό 수 있음 β†’ κ³ μ •ν”½μ…€κ°’μœΌλ‘œ μœ„μ ―μ„ λ°°μΉ˜ν•˜λ©΄ μ•±μ˜ UI μš”μ†Œκ°€ λ””λ°”μ΄μŠ€λ§ˆλ‹€ λ‹€λ₯΄κ²Œ λ‚˜νƒ€λ‚  수 있음
  • ScreenUtil νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜λ©΄ ν”½μ…€ λ‹¨μœ„ λŒ€μ‹  가상 λ‹¨μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ UI μš”μ†Œλ₯Ό 섀계할 수 있음
    • λ―Έλ””μ–΄ 쿼리(MediaQuery) 정보와 λ””λ°”μ΄μŠ€μ˜ ν”½μ…€ 밀도(DPI)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ •ν™•ν•œ 값을 계산
    • μ•±μ˜ UI μš”μ†Œλ₯Ό λ‹€μ–‘ν•œ ν™”λ©΄ 크기와 해상도에 맞좰 일관성 있게 ν‘œμ‹œν•  수 μžˆλ‹€


μ‚¬μš©λ²•

  1. μ•±μ˜ μ΅œμƒλ‹¨ μœ„μ ― 감싸주기

    designSize: ν”Όκ·Έλ§ˆμ— λ””μžμΈλœ μ•± ν”„λ ˆμž„ μ‚¬μ΄μ¦ˆλ‘œ λ§žμΆ°μ„œ μ μš©ν•˜λ©΄ 됨

    return ScreenUtilInit(	    // screenutil 적용
      designSize: const Size(360, 690),	   // ν”Όκ·Έλ§ˆμ— λ””μžμΈλœ μ•± ν”„λ ˆμž„ μ‚¬μ΄μ¦ˆλ‘œ λ§žμΆ°μ„œ μ μš©ν•˜λ©΄ 됨
      minTextAdapt: true,       // ν…μŠ€νŠΈ 크기λ₯Ό μžλ™μœΌλ‘œ μ‘°μ •ν•˜μ—¬ 화면에 λ§žμΆ”λŠ” κΈ°λŠ₯을 ν™œμ„±ν™”
      splitScreenMode: true,    // λΆ„ν•  ν™”λ©΄ λͺ¨λ“œλ₯Ό ν™œμ„±ν™”
      builder: (context , child) {
      	// μ΅œμƒλ‹¨ μœ„μ ―
        return MaterialApp(
  2. width, height, fontSize등을 λΆ€μ—¬ν•  λ•Œ .w .h .sp μ‚¬μš©ν•˜λ©΄ λͺ¨λ“  λ””λ°”μ΄μŠ€μ—μ„œ λΉ„μœ¨μ΄ μžλ™ 쑰절됨

    width: ScreenUtil().setWidth(50),
    height:ScreenUtil().setHeight(200),
    fontsize:ScreenUtil().setSp(15),
    
    width: 50.w,
    height: 200.h
    fontsize: 15.sp
profile
μš°μ™€μž¬λ°‹λ‹€

0개의 λŒ“κΈ€