问题描述
下面的代码工作正常,但不会在用户注销时隐藏小吃店。
它调用代码 _scaffoldKey.currentState.hideCurrentSnackBar();
但不隐藏小吃店。
如何删除或隐藏当前的小吃店?
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
// need to call super method for AutomaticKeepAliveClientMixin
super.build(context);
print('Rebuild in Home Screen.....');
return StreamBuilder<app.User>(
stream: Provider.of<AuthProvider>(context,listen: true).user,builder: (context,snapshot) {
return StreamBuilder<List<UserMovies>>(
stream: Provider.of<UserDetailsProvider>(context,listen: false)
.getUserFavouriteMovies(),snapshotMovies) {
Movies movies = snapshotMovies.hasData &&
snapshotMovies.data.length > 0
? snapshotMovies.data[0]
: null;
_showSnackBar(context,movies);
return SizedBox(height: 2.0);
},},),}
void _showSnackBar(BuildContext ctx,Movies movies) {
if (movies == null) {
_scaffoldKey.currentState.hideCurrentSnackBar();
} else {
WidgetsBinding.instance.addPostFrameCallback(
(_) => {
print('showCurrentSnackBar'),_scaffoldKey.currentState.showSnackBar(
SnackBar(
backgroundColor: Colors.deepPurple.shade300,content: Text("Hello World!"),duration: const Duration(
days: 1,behavior: SnackBarBehavior.floating,margin: EdgeInsets.zero,shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
const Radius.circular(0.0),);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)