dart - 颤振代码,接受来自用户显示必填字段的值
问题描述
**你好,我正在开发一个应用程序,用户应该在其中输入整数值。根据这些值,我们应该显示这些文本字段的数量..
例如:
1) enter total number of subject=10; 2) click on the button; 3) After button is clicked should display 10 text fields; 4) I have no idea what to do so if you know then help me plz.**
导入“包:颤振/material.dart”;
class imcaaddsubject extends StatefulWidget { @override _imcaaddsubjectState createState() => _imcaaddsubjectState(); } class _imcaaddsubjectState extends State<imcaaddsubject> { @override Widget build(BuildContext context) { return Container( padding: EdgeInsets.all(5), child: Card( child: ListView( padding: EdgeInsets.all(10), children: <Widget>[ Padding( padding: EdgeInsets.only(top: 10), ), new TextField( decoration: InputDecoration( border: OutlineInputBorder( borderSide: BorderSide(style: BorderStyle.solid)), labelText: "NUMBER OF SUBJECTS", hintText: "Enter number of subjects", ),keyboardType: TextInputType.number, ), Padding( padding: EdgeInsets.only(top: 15), ), new RaisedButton( child: Text( "OK", style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), ), color: Colors.cyan, onPressed: () {}, ) ], ), ), ); } }
解决方案
你可以这样尝试:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
home: MyApp(),
));
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
int numberOfSubjects = 0;
Widget subjectsBuilder(int numberOfSubjects) {
if (numberOfSubjects > 0) {
return ListView.builder(
itemBuilder: (BuildContext context, numberOfSubjects) {
return TextField(
decoration: InputDecoration(hintText: "enter a text"),
);
},
itemCount: numberOfSubjects,
);
} else {
return SizedBox();
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(children: <Widget>[
Expanded(
child: Container(
padding: EdgeInsets.all(5),
child: Card(
child: ListView(
padding: EdgeInsets.all(10),
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 10),
),
new TextField(
onSubmitted: (String value) {
setState(() {
numberOfSubjects = int.parse(value);
});
},
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(style: BorderStyle.solid)),
labelText: "NUMBER OF SUBJECTS",
hintText: "Enter number of subjects",
),
keyboardType: TextInputType.number,
),
Padding(
padding: EdgeInsets.only(top: 15),
),
],
),
),
),
),
Expanded(
child: subjectsBuilder(numberOfSubjects),
)
]),
);
}
}
此代码将根据用户输入在第一个文本字段下方显示多个文本字段,当然您可以在新页面中呈现它..您也不必使用按钮,用户提交文本就足够了。
推荐阅读
- java - 如何在 Maven 和 Eclipse 中使用不同的依赖版本两次构建相同的源代码?
- sed - 使用sed或grep搜索替换文件中的ip地址
- python - AttributeError:“CollectionReference”对象没有属性“doc”
- python - 使用 GUI 执行 ping 命令
- swift - typealias 作为表情无效的表情符号
- ios - 如何使用 sprite kit 进行资产管理
- graphql - 如何使用nexus-prisma做一个嵌套的变异解析器
- python - 如何从稀疏矩阵在networkx中创建图形?
- mysql - 如何执行一个非常庞大的 MySQL 查询?(花了几天然后没有成功就停止了)
- c++ - 是否有任何内置函数可以告诉编译器分支是否可预测?