flutter屏幕旋转监听,不愧是阿里P8
在Flutter中,可以使用SystemChrome.setPreferredRotation
方法来锁定屏幕的旋转方向,并使用OrientationBuilder
来监听屏幕方向的变化。
以下是一个简单的例子,展示如何监听屏幕旋转:
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: OrientationListeningWidget(),
);
}
}
class OrientationListeningWidget extends StatefulWidget {
@override
_OrientationListeningWidgetState createState() => _OrientationListeningWidgetState();
}
class _OrientationListeningWidgetState extends State<OrientationListeningWidget> {
@override
void initState() {
super.initState();
// 锁定屏幕方向为竖屏
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: OrientationBuilder(
builder: (context, orientation) {
// orientation是当前屏幕的方向
return Center(
child: Text('Screen Orientation is: $orientation'),
);
},
),
);
}
}
在这个例子中,OrientationBuilder
是一个StatefulWidget,它的builder
回调函数会在屏幕方向变化时被调用,并更新UI以反映新的方向。SystemChrome.setPreferredOrientations
用于设置应用程序支持的屏幕方向。
请注意,这个例子中只展示了竖屏(portraitUp),你可以根据需要添加更多的支持方向。
评论已关闭