Flutter MediaQuery Widget
Flutter 的 MediaQuery Widget 可以用于获取屏幕信息和设备信息,如屏幕宽度、高度、设备像素比等。开发者可以使用 MediaQuery Widget 通过不同的信息来调整 Widget 的布局、尺寸和样式等。
示例代码:
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final mediaQuery = MediaQuery.of(context);
    final screenWidth = mediaQuery.size.width;
    final screenHeight = mediaQuery.size.height;
    final devicePixelRatio = mediaQuery.devicePixelRatio;
    return Container(
      width: screenWidth * 0.8,
      height: screenHeight * 0.5,
      child: Text(
        'Device pixel ratio: $devicePixelRatio',
        style: TextStyle(
          fontSize: screenWidth * 0.05,
          fontWeight: FontWeight.bold,
        ),
      ),
    );
  }
}
上述代码展示了如何使用 MediaQuery Widget 来获取屏幕信息和设备信息,并根据这些信息来调整 Text Widget 的尺寸和样式。其中,MediaQuery.of(context) 可以获取到当前 context 下的 MediaQuery 数据。
MediaQuery 中常用的属性包括:
- size:屏幕尺寸,包括宽度和高度。
 - devicePixelRatio:设备像素比,即物理像素与逻辑像素的比值。
 - textScaleFactor:文本缩放因子,即用户设置的文本大小与标准大小的比值。
 - padding:屏幕的 padding,包括顶部、底部、左侧和右侧的 padding。
 
开发者可以根据不同的需求使用不同的属性来调整 Widget 的尺寸和样式等,以适应不同的屏幕和设备。