首页 > 其他分享 >Flutter 循环创建输入框 TextField

Flutter 循环创建输入框 TextField

时间:2022-08-23 09:34:45浏览次数:57  
标签:index numberControllers listData text 输入框 item TextField Flutter

需求:

  根据接口返回的数据生成列表,列表内含有可编辑的字段

 

先初始化一个 TextEditingController 集合

Map<Object, TextEditingController> _numberControllers = Map();

 

拿到接口数据时进行绑定

listData.forEach((element) {
    _numberControllers[element] = TextEditingController();
});

 

在 TextField 绑定 controller

controller: _numberControllers[listData[index]],

TextField 完整代码

                TextField(
                    onSubmitted: (value) {
                      listData[index]['actualQuantity'] = _numberControllers[listData[index]].text;
                    },
                    onChanged: (value) {
                    },
                    cursorColor: Color(0xff999999),
                    keyboardType: TextInputType.number,
                    textInputAction: TextInputAction.done,
                    autofocus: false,
                    controller: _numberControllers[listData[index]],
                    onEditingComplete: () {
                      FocusScope.of(context).requestFocus(FocusNode());
                    },
                    style: TextStyle(
                      color: Color(0xff333333), fontSize: ScreenUtil().setSp(28)
                    ),
                    decoration: InputDecoration(
                      border: InputBorder.none,
                      contentPadding: const EdgeInsets.symmetric(vertical: 10.0),
                      hintText: "请输入数量",
                      hintStyle: new TextStyle(
                        fontSize: ScreenUtil().setSp(28),
                        color: Color(0xff666666)
                      ),
                    ),
                  ),    
View Code

 

设置值

listData.forEach((item) {
    if (_numberControllers[item].text.isNotEmpty) {
          item['actualQuantity'] = _numberControllers[item].text;
     }
 });

 

 

 

放不了图了,自行试一下好了。


标签:index,numberControllers,listData,text,输入框,item,TextField,Flutter
From: https://www.cnblogs.com/wyhlightstar/p/16615009.html

相关文章

  • flutter系列之:用来管理复杂状态的State详解
    目录简介StatefuWidget和StateState的生命周期总结简介Flutter的基础是widget,根据是否需要跟用户进行交互,widget则可以分为StatelessWidget和StatefulWidget。Stateless......
  • flutter 效果实现 —— 全局点击空白处隐藏键盘
    为什么要实现点击空白处隐藏键盘?因为这是iOS平台的默认行为,Android平台由于其弹出的键盘右上角默认带有关闭键盘的按钮,所以点击空白处不会隐藏键盘。单个页面,可以这样......
  • flutter 效果实现 —— sliver 固定
    效果:说明:绿色块在向上滑动,距离顶部103的高度(即AppBar下面)时固定代码:classPinnedSliverPageextendsStatefulWidget{constPinnedSliverPage({Key?key}):......
  • Django TextField
    如下图,官方文档中解释含义:即使设置了max_length,只会在前端表单的Textarea框中输入有限制. 并没有在模型表或数据库MySQL中被限制. ......
  • flutter系列之:widgets,构成flutter的基石
    目录简介StatelessWidget和StatefulWidgetStatelessWidget详解StatefulWidget详解总结简介flutter中所有的组件都是由widgets组成的,flutter中有各种各样的widgets,这些wid......
  • flutter 杂项 —— Stateful 与 Stateless 的更新
    一、使用StatefulBuilder单独更新某个组件的状态示例:awaitshowDialog<void>(context:context,builder:(BuildContextcontext){int?selectedRadio=0......
  • vue 多行输入框显示行号
    一、概述因业务需求,多行文本需要显示行号,方便查看配置。由于默认的textarea输入框无法显示行号,因此需要使用第三方插件才行。 二、插件我找了一个插件,叫bin-code-edi......
  • 【快应用】input组件的输入框弹出后,如何点击其他地方后失去焦点,并收起键盘
    可以在input组件最外面的div上写一个收起键盘的事件。 代码如下(关注加粗的内容): <template>  <div class="item-container">    <div class="item-containe......
  • flutter —— 布局原理与约束 2
    一、布局模型Sliver的布局流程如下:Viewport将当前布局和配置信息通过SliverConstraints传递给Sliver。Sliver确定自身的位置、绘制等信息,保存在geometry中(一个......
  • flutter 技术选型 —— 视频播放器插件
    chewie依赖:video_player+chewie缺点:ui简陋,无法后台播放classVideoPlayerScreenextendsStatefulWidget{constVideoPlayerScreen({Key?key}):super(key:ke......