mobile – Flutter – 单击时渲染新的小部件

mobile – Flutter – 单击时渲染新的小部件,第1张

概述标题基本上都说明了一切.一个非常高兴的问题……我有这个基本代码来创建我的应用程序的初始状态: class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', t 标题基本上都说明了一切.一个非常高兴的问题……我有这个基本代码来创建我的应用程序的初始状态:

class MyApp extends StatelessWidget {  @overrIDe  Widget build(BuildContext context) {    return new MaterialApp(      Title: 'Flutter Demo',theme: new themeData(        primarySwatch: colors.blue,),home: new MyHomePage(Title: 'Some Title'),);  }}class MyHomePage extends StatefulWidget {  MyHomePage({Key key,this.Title}) : super(key: key);  final String Title;  @overrIDe  _MyHomePageState createState() => new _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> {  @overrIDe  Widget build(BuildContext context) {    return new Scaffold(      appbar: new Appbar(Title: new Text(config.Title)),body: new Column(        mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [          new inputWidget(),]      ),);  }}

现在,当用户点击按钮时,如何呈现新的Widget?假设我想实例化另一个inputWidget.

谢谢

解决方法 我希望我能正确理解你的问题……

我认为主要的一点是你不应该想到“另一个”小部件 – 如果你改变MyHomePage的内容从拥有第一个孩子然后两个你没有真正保留第一个孩子然后再添加另一个孩子.你只是先说“我想要一个孩子”然后你改变主意并说“我想要两个孩子”.

在您的代码中,您可以通过在_MyHomePageState中调用setState来完成此 *** 作. Flutter负责保留第一个并添加第二个孩子.

import 'dart:core';import 'package:Flutter/material.dart';class MyApp extends StatelessWidget {  @overrIDe  Widget build(BuildContext context) {    return new MaterialApp(      Title: 'Flutter Demo',this.Title}) : super(key: key);  final String Title;  @overrIDe  _MyHomePageState createState() => new _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> {  int count = 1;  @overrIDe  Widget build(BuildContext context) {    List<Widget> children = new List.generate(count,(int i) => new inputWidget(i));    return new Scaffold(        appbar: new Appbar(Title: new Text(Widget.Title)),body: new Column(            mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: children        ),floatingActionbutton: new floatingActionbutton(          child: new Icon(Icons.add),onpressed: () {            setState(() {              count = count + 1;            });          },)    );  }}class inputWidget extends StatelessWidget {  final int index;  inputWidget(this.index);  @overrIDe  Widget build(BuildContext context) {    return new Text("inputWidget: " + index.toString());  }}

这是你的意思吗?

总结

以上是内存溢出为你收集整理的mobile – Flutter – 单击渲染新的小部件全部内容,希望文章能够帮你解决mobile – Flutter – 单击时渲染新的小部件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存