有没有办法根据我的设备尺寸设置 sizedbox 的尺寸

时间:2021-06-14 09:05:26

标签: android flutter dart user-interface

我想根据设备的尺寸设置sizedbox的尺寸,简单来说,我想使用MediaQuery.of(context).size.width*constant作为我的SizedBox()

如果有其他替代方法,请告诉我它的信息。

2 个答案:

答案 0 :(得分:2)

您可以从 MediaQuery.of(context).size 获取设备尺寸并基于该尺寸创建一个大小的框。 SizedBox.fromSize({Key? key, Widget? child, Size? size}) 创建一个指定大小的框。

替代:您也可以使用 flutter_screenutil 包。 https://pub.dev/packages/flutter_screenutil

答案 1 :(得分:0)

不是我的,来自 YouTube 视频

            import 'package:flutter/material.dart';
        
        class SizeConfig {
          static  late MediaQueryData _mediaQueryData;
          static  late double screenWidth;
          static late double screenHeight;
          static late double defaultSize;
          static late Orientation orientation;
        
          void init(BuildContext context) {
            _mediaQueryData = MediaQuery.of(context);
            screenWidth = _mediaQueryData.size.width;
            screenHeight = _mediaQueryData.size.height;
            orientation = _mediaQueryData.orientation;
          }
        }
        
        // Get the proportionate height as per screen size
        double getProportionateScreenHeight(double inputHeight) {
          double screenHeight = SizeConfig.screenHeight;
          // 812 is the layout height that designer use
          return (inputHeight / 812.0) * screenHeight;
        }
        
        // Get the proportionate height as per screen size
        double getProportionateScreenWidth(double inputWidth) {
          double screenWidth = SizeConfig.screenWidth;
          // 375 is the layout width that designer use
          return (inputWidth / 375.0) * screenWidth;
        }
相关问题