当前位置: 首页 > wzjs >正文

17一起来做网站wordpress插件 flyzoo

17一起来做网站,wordpress插件 flyzoo,网页无法访问公司内网,南宁app开发有些情况下,输入框在输入键盘弹出后, 需要在键盘的上方显示一个toolbar , 然后 toolbar 上面一个完成按钮,点完成按钮把键盘关闭。 如图: 直接上代码,这样写的好处是,把 TextField 给封装了&…

有些情况下,输入框在输入键盘弹出后, 需要在键盘的上方显示一个toolbar , 然后 toolbar 上面一个完成按钮,点完成按钮把键盘关闭。 

如图: 

直接上代码,这样写的好处是,把 TextField 给封装了, 这样使用起来更方便一些,

更多的属性,自己可以在上面扩展。 

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class KeyboardDoneInput extends StatefulWidget {final TextEditingController controller;final ValueChanged<String>? onSubmitted;const KeyboardDoneInput({Key? key,required this.controller,this.onSubmitted,}) : super(key: key);@overrideState<KeyboardDoneInput> createState() => _KeyboardDoneInputState();
}class _KeyboardDoneInputState extends State<KeyboardDoneInput> {late final FocusNode _focusNode = FocusNode();OverlayEntry? _overlayEntry;@overridevoid initState() {super.initState();_focusNode.addListener(_handleFocusChange);}void _handleFocusChange() {if (_focusNode.hasFocus) {_insertOverlay();} else {_removeOverlay();}}void _insertOverlay() {if (_overlayEntry != null) return;final overlay = Overlay.of(context);_overlayEntry = OverlayEntry(builder: (context) => Positioned(left: 0,right: 0,bottom: MediaQuery.of(context).viewInsets.bottom,child: Material(color: Colors.transparent,child: Container(padding: const EdgeInsets.symmetric(horizontal: 20),color: Colors.grey[100],child: Row(children: [const Spacer(),CupertinoButton(padding: EdgeInsets.zero,child: const Text("完成",style: TextStyle(fontSize: 16, color: Colors.black),),onPressed: () {_focusNode.unfocus();widget.onSubmitted?.call(widget.controller.text);},),],),),),),);overlay.insert(_overlayEntry!);}void _removeOverlay() {_overlayEntry?.remove();_overlayEntry = null;}@overridevoid dispose() {_focusNode.dispose();_removeOverlay();super.dispose();}@overrideWidget build(BuildContext context) {return TextField(controller: widget.controller,focusNode: _focusNode,keyboardType: TextInputType.number,textAlign: TextAlign.center,inputFormatters: [FilteringTextInputFormatter.digitsOnly],decoration: const InputDecoration(border: OutlineInputBorder(),contentPadding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),),onSubmitted: widget.onSubmitted,);}
}

调用如下, 

KeyboardDoneInput(controller: _controller, onSubmitted: (value) {},
)


文章转载自:

http://smFXzKaj.jmLgk.cn
http://k9km8CON.jmLgk.cn
http://TO9FS1GK.jmLgk.cn
http://I6myQ8Ft.jmLgk.cn
http://rZeQKELD.jmLgk.cn
http://G9BmgnsE.jmLgk.cn
http://TQGVK2l8.jmLgk.cn
http://8mIDkhCO.jmLgk.cn
http://UQ2UkrK5.jmLgk.cn
http://QZeveCDD.jmLgk.cn
http://tzfByzKR.jmLgk.cn
http://8XW9W3Kn.jmLgk.cn
http://b5L67Q2x.jmLgk.cn
http://BQhbsNqs.jmLgk.cn
http://7jeq4G2a.jmLgk.cn
http://J2seN135.jmLgk.cn
http://fagdePDm.jmLgk.cn
http://ozNfd25U.jmLgk.cn
http://hjKRrQoh.jmLgk.cn
http://rYoJXJpY.jmLgk.cn
http://HShVNtb3.jmLgk.cn
http://A8FlIPmA.jmLgk.cn
http://aaVJkI5j.jmLgk.cn
http://DBGskcU1.jmLgk.cn
http://SCEDyBQZ.jmLgk.cn
http://utVueiwe.jmLgk.cn
http://2lKt8G9u.jmLgk.cn
http://rtlW5hF2.jmLgk.cn
http://JWyV7agU.jmLgk.cn
http://LNFhdDnR.jmLgk.cn
http://www.dtcms.com/wzjs/778017.html

相关文章:

  • wordpress 分享到qq空间吉利seo
  • 专业网站建设流程恋爱网页生成
  • 深圳龙华建设局官方网站广告代理平台
  • 韶关营销网站开发联系方式企业为什么要做账
  • 低价刷赞网站推广北京市建设工程信息网告知性备案
  • 公司的网站建设服务费建设工程交易平台
  • 做网站各个流程天坛整装体验馆地址
  • 网站改版竞品分析怎么做文字短链接生成器
  • 下陆区建设局网站苏州优化网站哪家好
  • 网站建设和seo讲师要求网站售后
  • 荥阳网站建设做网站注意设么
  • 广西柳州网站建设小程序公司营销型外贸网站广州
  • 抄袭别人网站单页导航html5源码
  • 朗格手表网站玖玖建筑网官方网
  • iis 网站打不开创建全国文明城市手抄报内容
  • 做门户网站找哪家公司随州做网站公司
  • 织梦系统seo网站模板wordpress adsense主题
  • 企业门户网站源码网页制作素材 期末考试
  • 预定型网站有哪些wordpress mysql 优化
  • 网站建设实训过程wordpress 删除菜单
  • 长春网站建设产品展示qq网页版登录网址
  • 公司做网站域名归谁百度域名收录提交入口
  • 做同城购物网站赚钱吗网站制作详细报价
  • 国有资产处网站建设wordpress最底部版權
  • 电子商务网站建设配色网站备案 图片大小
  • 网站向哪里备案公司网站建设方案建议
  • 电商网站建设模型图网站维护包含哪些内容
  • 一个人的网站建设win7优化设置
  • 做直播网站需要学什么软件百度公司
  • 上海城乡建设部网站首页河南省建筑工程信息网官网