flutter - 基于 AppLifeCycleState 渲染小部件,查看正在运行的应用列表时隐藏页面
问题描述
我有以下代码,当应用程序进入非活动或暂停状态时,它将用容器替换子项。
这在 IOS 中不起作用,在 Android 中也不一致
class SecureScreen extends StatefulWidget {
final Widget child;
SecureScreen({@required this.child});
@override
SecureScreenState createState() => SecureScreenState();
}
class SecureScreenState extends State<SecureScreen>
with WidgetsBindingObserver {
AppLifecycleState _notification;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
print(state.toString());
setState(() {
_notification = state;
});
}
@override
Widget build(BuildContext context) {
return (_notification == AppLifecycleState.paused ||
_notification == AppLifecycleState.inactive)
? Container(
color: Colors.greenAccent,
)
: widget.child;
}
}
这是解决问题的最佳方法吗?如果是,我必须改变什么才能完成这项工作。如果不是,请提出替代解决方案。
提前致谢
解决方案
推荐阅读
- neo4j - how to union two collection in cypher
- ios - 将 AVCaptureSession 输出到 iPhone 扬声器
- javascript - How to replace string with \r\n on node.js?
- sql-server-2012 - 钻探不返回维度键
- java - LibGdx project setup - Project generated with gradle error
- java - Reports API Google - 日历审核活动事件
- typescript - 禁止在 TypeScript 中创建带大括号的类对象
- javascript - 如何获取 TAG 值/文本(如 innerHTML)?
- ios - 使 UIImageView 圆形而不用它自己的高度划分它
- qt - 如何使 Qt 5.11.2 附带的 QDoc 在 Windows 7 下工作?