Flutter如何在布局中添加或删除组件
【摘要】 为什么要单独拿出这个来讲呢?在Android中,从父级控件调用addChild或removeChild就可以动态添加或删除View。 在Flutter中,因为widget是不可变的,所以没有addChild。但是,可以传入一个函数,该函数返回一个widget给父项,并通过布尔值控制该widget的创建。
bool offstage = false;
// 控制字段...
为什么要单独拿出这个来讲呢?在Android中,从父级控件调用addChild
或removeChild
就可以动态添加或删除View
。 在Flutter中,因为widget是不可变的,所以没有addChild。但是,可以传入一个函数,该函数返回一个widget给父项,并通过布尔值控制该widget的创建。
bool offstage = false;
// 控制字段
void _toggle(){ setState(() { offstage = !offstage; });
} // 根据控制字段添加相应的widget
_getToggleChild(){ if(offstage){ return new Text("Toggle one"); }else{ return new MaterialButton(onPressed: (){},child: new Text("Toggle two"),); }
} @override
Widget build(BuildContext context) { return new MaterialApp( home: new Scaffold( appBar: new AppBar( title: new Text("Hello"), ), body: Center(child: _getToggleChild(),), // 添加组件 floatingActionButton: new FloatingActionButton( onPressed: _toggle, // 控制控制字段 child: new Icon(Icons.update), ), ), );
}
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/108165737
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)