gpt4 book ai didi

dart - 如何在 Flutter 中获取当前上下文?

转载 作者:IT老高 更新时间:2023-10-28 12:38:20 24 4
gpt4 key购买 nike

我正在使用底部导航栏。在某个事件触发器上,我需要在当前屏幕上显示一些警报。

这就是我实现底部导航栏的方式。我有四个标签。在这里,当 _isHomeDetected 为真并且当用户单击图标时,我需要更改第 4 个选项卡的图标,即在索引 3 上,无论用户是哪个选项卡,我都必须显示一条警报消息我该怎么做?

class LandingScreen extends StatefulWidget {
static Widget bottomNavigationBar;
..
}

class _LandingScreenState extends State<LandingScreen> {
...
StreamSubscription<String> _subscription;
bool _isHomeDetected = false;

@override
void initState() {
...
_subscription = server.messages.listen(onData, onError: onError);
}
onData(message) {
setState(() {
_isHomeDetected = json.decode(message)["isHomeBeacon"];
});
}
...
@override
Widget build(BuildContext context) {
LandingScreen.bottomNavigationBar = new BottomNavigationBar(
....
);
return new Scaffold(
body: _currentPage,
bottomNavigationBar: LandingScreen.bottomNavigationBar,
);
}

_navigateToScreens(int currentIndex) {
List screens = [
..
];
setState((){

if (!_isHomeDetected || currentIndex != 3){
_currentPage = screens[currentIndex];
} else {
Utils.showCupertinoAlert(
context: context, content: "You wanna log out???");
}
});
}
}

最佳答案

在任何有状态小部件的构建方法中,您都可以获取构建上下文。如果你不能这样做,以下来自 Flutter 团队的示例使用 GlobalKey<ScaffoldState>有权显示snackBar alert。

https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart

关于dart - 如何在 Flutter 中获取当前上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50246019/

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