Flutter: MediaQuery
2024-09-08 05:45:53
使用MediaQuery根据不同的屏幕大小调整应用程序的UI布局。 您还可以使用它根据用户布局首选项进行UI调整。
class _MyHomeState extends State<MyHome> {\
@override
Widget build(BuildContext context) {
MediaQueryData deviceData = MediaQuery.of(context);
// 屏幕信息
Size screenSize = deviceData.size;
// 设备方向
Orientation deviceOrientation = deviceData.orientation;
bool isPortrait = true;
if (deviceOrientation == Orientation.portrait) {
// print('竖屏:更高');
isPortrait = true;
} else if (deviceOrientation == Orientation.landscape) {
// print('横屏: 更宽');
isPortrait = false;
}
// 默认字体大小
double fontScaling = deviceData.textScaleFactor;
// 屏幕各个部分,flutter自动提供了一个安全区域
EdgeInsets notchInset = deviceData.padding;
print(notchInset);
// 辅助信息,是否禁用了动画
bool noAnimations = deviceData.disableAnimations;
print(noAnimations);
// 系统UI的大小
print(MediaQuery.of(context).viewPadding.bottom);
// 当前App亮度模式
Brightness screenContrast = deviceData.platformBrightness;
print(screenContrast);
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo'),
),
body: Column(
children: <Widget>[
Container(
child: Text(
screenSize.width.toString(),
style: TextStyle(fontSize: 30),
),
),
Container(
child: Text('默认字体大小: $fontScaling'),
),
Container(
height: 100.0,
decoration: BoxDecoration(
color: isPortrait ? Colors.green : Colors.purple,
),
),
],
),
);
}
}
最新文章
- ASP.NET 5 - $.ajax post JSON.stringify(para) is null
- Setting Up KeePass For Centos 6
- Codeforces 697A - Pineapple Incident
- js 与或运算符 || &;&; 妙用
- 使用generator自动生成mybatis model、mapper.xml、mapper等(转)
- CSS3之背景剪裁Background-clip
- Android开发之多媒体编程之加载大分辨率图片
- 图片裁切插件jCrop的使用心得(三)
- 导入外部jar包的方法
- Linux 删除空行
- [UWP]新控件ColorPicker
- [Codeforces Round#417 Div.2]
- Adapterview和adapter的联系
- 记录一次Python下Tensorflow安装过程,1.7带GPU加速版本
- 并发编程之synchronized关键字
- javascript获取DOM对象三种方法
- http协议进阶(四)报文首部
- ajax readyState=4并且status=200时,还进error方法
- jquery中的属性和样式设置
- 【BZOJ 4148】 4148: [AMPPZ2014]Pillars (乱搞)