【发布时间】:2021-09-16 10:12:29
【问题描述】:
我正在尝试使用Visibility 小部件来显示和隐藏我的页面。这是我的逻辑,当在第一页布尔 isVisible 为 true 时显示 Container 小部件,但当我转到另一个屏幕时,我将布尔 isVisiblevis 设置为 false,这样我的容器就会隐藏并保持它的状态。当我从第二个屏幕返回时,我想将布尔值设置回 true,从而显示我的容器。
首页
class MainScreen extends StatefulWidget {
bool isVisible = true;
MainScreen({this.isVisible});
...
@override
Widget build(BuildContext context) {
body: Container(
//change the margin
margin: EdgeInsets.fromLTRB(0, 0, 0, 300),
child: isVisible ?
Visibility(
maintainAnimation: true,
maintainState: true,
child: (Container(
Text ('first page')
): Container ()
.....
GestureDetector(
onTap: () {
isVisible= false; //set the visibility false
Navigator.push(
//send to search screen
context,
MaterialPageRoute(
builder: (context) => (SecondScreen())));
},
现在在第二页弹出时,如何在第一页将布尔值 isVisible 设置回 true ?
GestureDetector(
onTap: () {
Navigator.pop(
//send back data
context,
dropOffTextEditingController.text,
);
MainScreen(mapVisible: true,); //doesn't work
},
【问题讨论】: