gpt4 book ai didi

android - 如何在向下滚动后自动隐藏状态栏?

转载 作者:行者123 更新时间:2023-12-04 17:22:15 24 4
gpt4 key购买 nike

我想在向下滚动 3 秒后自动隐藏状态栏。

目前,我正在这样做。

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
Timer.periodic(const Duration(seconds: 3), (timer) {
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
});
}

@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen();
);
}
}

我希望在用户滚动状态栏时立即开始计时。

有更好的方法吗?

最佳答案

您可能会在 SystemChrome 上遇到现有问题。

当仅将 System UI Overlays 设置为 bottomtop 时,状态栏/底部将在点击后持续显示。

我提供了一个变通解决方案,使用 WidgetsBindingObserver

检测状态栏出现并对其 使用react
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {

var count = 0;

@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}

...

@override void didChangeMetrics() {
count++;
Future.delayed(const Duration(seconds: 3), () {
if(count == 1) {
SystemChrome.restoreSystemUIOverlays();
}
count --;
});
}
...

@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}

关于android - 如何在向下滚动后自动隐藏状态栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com