如何解决Flutter - 是否可以在另一个容器中显示一个小吃店而不是用来触发 .show 的那个?
是否可以让小吃店只出现在另一个小部件中? 我正在尝试类似的方法,以便当我们单击按钮时,小吃栏只会嵌入容器内,不会出现在容器外,但它不起作用:
@override
Widget build(BuildContext context) {
BuildContext snackContext;
return Stack(
children: [
Builder(builder: (BuildContext context) {
snackContext = context;
return Container(height: 300,width: 300,child: Text('Test'));
}),TextButton(
onPressed: () {
ScaffoldMessenger.of(snackContext).showSnackBar(
SnackBar(
backgroundColor: Color(0x44000000),content: Text(
'Test of snackbar',),);
},)
],);
}
请指教~
解决方法
在 State
中保存正确的上下文。此代码适用于我:
class _TestPageState extends State<TestPage> with TickerProviderStateMixin {
BuildContext snackContext;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,children: [
Container(
height: 300,width: 200,child: Scaffold(
backgroundColor: Colors.deepPurple,body: Builder(builder: (BuildContext context) {
snackContext = context;
return Container(height: 300,width: 300,child: Text('Test'));
}),),Center(
child: TextButton(
onPressed: () {
Scaffold.of(snackContext).showSnackBar(
SnackBar(
backgroundColor: Color(0x44000000),content: Text(
'Test of snackbar',);
},child: Text('data'),)
],);
}
}
class TestPage extends StatefulWidget {
@override
_TestPageState createState() => _TestPageState();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。