如何在Flutter应用程序中获取屏幕大小?

6za6bjd0  于 2023-04-07  发布在  Flutter
关注(0)|答案(2)|浏览(204)

我以整页模式显示从云存储加载的图像。我可以向图像URL提供参数以请求特定大小,例如匹配最长屏幕尺寸。这样,如果屏幕只有1334像素,我就不必加载1920px图像。
我如何让屏幕大小作为参数传递?

iswrvxsc

iswrvxsc1#

您可以使用MediaQuery类沿着关联的MediaQueryData来确定屏幕大小并获取正确的图像。然后您可以将MediaQueryData.size成员与一些预定义的屏幕大小进行比较-这将为您提供逻辑像素数。
例如,在小部件的构建方法中:

class MyWidget extends StatelessWidget {

  Widget build(BuildContext context) {
     // retrieve the mediaQuery data
     final mediaQueryData = MediaQuery.of(context);
     if (mediaQueryData.size < const Size(100.0, 100.0)) {
       // build small image.
     } else {
       // build big image.
     }
  }

}
xxslljrj

xxslljrj2#

import 'package:flutter/material.dart';

class MyWork extends StatefulWidget {
  const MyWork({super.key});

  @override
  State<MyWork> createState() => _MyWorkState();
}

class _MyWorkState extends State<MyWork> {
  @override
  Widget build(BuildContext context) {
    int screenHeight = MediaQuery.of(context).size.height.toInt(); // remove .toInt() and convert type to double for extra precision
    int screenWidth = MediaQuery.of(context).size.width.toInt();
    return Scaffold(body: Center(child: Text("$screenHeight, $screenWidth")));
  }
}

相关问题