我的StatefulWidget中有这样的Material小部件
final _key = GlobalKey();
new Material(
key: _key,
color: Colors.white,
child: Text('lorem ipsum')
)
然后我需要这样隐藏或显示Material小部件
new RaisedButton(
child: Text('Click')
color: Colors.green,
onPressed: (){ _key.currentContext.hide; }
)
它不起作用,如何解决?谢谢
答案 0 :(得分:0)
您可以将按钮设为管理可见性的任何此类小部件的子代,有关此blog post的更多信息,请点击此处,此处为摘要:
**可见性小部件** visibility widget
Visibility(
visible: false,
child: Container(),
)
);
子窗口小部件未呈现在子树中,Flutter而是使用缩小尺寸的框来替换它。
**后台小部件** offstage widget
Offstage(
offstage: true,
child: //your child
)
);
后台将子窗口小部件呈现在屏幕之外。这意味着该小部件未呈现在子树中,因此不会占用任何空间。
**不透明度小部件** opacity widget
Opacity(
opacity: 0.0,
child: Container(
child: //child here
)
);
此小部件仅将孩子的不透明度设置为零,但仍将其渲染。因此,孩子是隐藏的,但会占用空间,您可以与其互动。