我正在寻找一种方法来监听手机方向的变化,以便在手机为横向时隐藏某些内容。
我的布局目前仅按预期以纵向显示,但我希望我的应用在设备旋转到横向时执行某些操作,同时保持纵向布局。
我曾尝试使用 OrientationBuilder
,但这仅在布局更改为横向时才有效。
我也尝试过使用 MediaQuery.of(context).orientation
,但是一旦设备旋转,它会继续返回纵向,同样只使用布局方向。
最佳答案
您可以收听屏幕大小的变化,但 MediaQuery.of(...)
应该也能正常工作,并且应该在方向变化时重新构建您的小部件
https://stephenmann.io/post/listening-to-device-rotations-in-flutter/
import 'dart:ui'; import 'package:flutter/material.dart'; class WidthHeight extends StatefulWidget { WidthHeight({ Key key }) : super(key: key); @override WidthHeightState createState() => new WidthHeightState(); } class WidthHeightState extends State with WidgetsBindingObserver { @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); } @override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); } double width = 0.0; double height = 0.0; @override void didChangeMetrics() { setState(() { width = window.physicalSize.width; height = window.physicalSize.height; }); } @override Widget build(BuildContext context) { return new Text('Width: $width, Height $height'); } }
https://stackoverflow.com/questions/54986748/
相关文章:
google-maps - 自定义 Flutter Google Map 中的中心位置按钮
flutter - 了解 Flutter didChangeDependencies 机制
flutter - 在 Android Studio 中运行和热重载 flutter 的问题(坏状态
android - 在 Flutter 的垂直列表中添加动态高度水平 ListView
architecture - flutter BLoC : Is using nested Stre
testing - 如何在 Flutter 中测试私有(private)函数/方法?
dart - 如何根据背景图像更改文本颜色 - Flutter
dart - StreamBuilder 抛出 Dirty State 说 Invalid Argu