您好,我是Flutter的新手,我想知道是否可以通过单击按钮添加新的小部件。 我调查了很多类似堆栈溢出的问题。但是由于我的知识不足,大多数对我来说似乎很复杂且难以掌握。我需要做的就是在旧的构建容器下面添加一些容器
class MedPreC extends StatefulWidget {
@override
_MedPreCState createState() => _MedPreCState();
}
Widget returnWidget() {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
width: double.infinity,
height: 40,
color: Colors.red,
),
);
}
class _MedPreCState extends State<MedPreC> {
var child2 = Column(
children: [
returnWidget(),
],
);
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
Expanded(
child: Container(
color: Colors.yellow,
height: 400,
width: double.infinity,
child: child2,
),
),
RaisedButton(
child: Text("Add"),
onPressed: () {
setState(() {
//
child2.children.add(returnWidget());
//
});
},
)
],
),
);
}
}
这是我到目前为止编写的代码。整个代码将在带有脚手架和其他东西的另一个类中调用 returnWidget()返回一个红色容器 child2是一个在黄色容器内调用的列,其中一个红色容器作为其子容器之一 我需要在按钮上添加更多的红色容器 谢谢您了
答案 0 :(得分:1)
尝试一下
service2.example.com
答案 1 :(得分:0)
为此,您还需要检查窗口小部件的溢出。因此,您可以检查以下代码。
import 'package:flutter/material.dart';
class MedPreC extends StatefulWidget {
@override
_MedPreCState createState() => _MedPreCState ();
}
class _MedPreCState extends State<MedPreC > {
List<Widget> data = [];
Widget CustomWidget() {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
width: double.infinity,
height: 40,
color: Colors.red,
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Container(
color: Colors.yellow,
height: MediaQuery.of(context).size.height - 60,
width: double.infinity,
child: SingleChildScrollView(child: Column(children: data)),
),
],
),
bottomNavigationBar: Container(
height: 60,
width: MediaQuery.of(context).size.width,
color: Colors.white,
child: InkWell(
child: Center(
child: Container(
color: Colors.red,
width: 100,
height: 40,
child: Center(child: Text("Add"))),
),
onTap: () {
setState(() {
data.add(CustomWidget());
});
},
),
),
);
}
}