当前位置:网站首页>[flutter topic] 64 illustration basic textfield text input box (I) # yyds dry goods inventory #
[flutter topic] 64 illustration basic textfield text input box (I) # yyds dry goods inventory #
2022-07-05 01:04:00 【A Ze little monk】
I've been learning the basics recently Flutter Widget, The reason is that many basic components have many considerations that are easy to ignore , After understanding and being familiar with it, the overall development cognition will be improved ; Let's learn the dishes today TextField Text input box ;
Source code analysis
Analysis of the source code can be ,TextField It's state StatefulWidget, There are rich properties , High customization , In practice, we need to make rational use of all kinds of callback ;
Case study
- Side dishes try the most basic TextField, Distinguish between default state and get focus state ;
- The side dish tried the relevant properties of the cursor ;cursorColor Color the cursor ,cursorWidth Is the cursor width ,cursorRadius Fillet the cursor ; among Radius Provides circle Fillets and elliptical There are two kinds of non rounded corners ;
- textAlign Is the starting position of the text , The cursor can be left according to the business / be at the right / Center, etc ; Note that it's just the beginning of the text ;textDirection Ask the direction of the text , From left to right or from right to left ;
- maxLength Is the character length , The default setting is to display one line , And there is a comparison between the edit length and the overall length in the lower right corner ; And maxLengthEnforced coordination ,maxLengthEnforced by true When the maximum character length is reached, it cannot be edited ; by false You can continue to edit when the display is different ;
- Set up maxLength Then there is a character counter in the lower right corner by default , Set up TextField.noMaxLength You can only display the number of input characters ;
- maxLines Is the maximum number of rows allowed to be displayed , In the use of maxLength When the content exceeds one line, it will not wrap automatically , Because the default maxLines=1, This is set to null Or fix the number of display lines to automatically wrap ; The difference lies in null Will show multiple lines , and maxLines At most, only the set number of lines will be displayed ;
- obscureText Whether to hide the edited content , Common password formats ;
- enableInteractiveSelection Press and hold to see if there is 【 shear / Copy / Paste 】 menu ; Do not empty ;
- keyboardAppearance For keyboard brightness , Include Brightness.dark/light Two kinds of , But only iOS equipment ;
- textCapitalization Text case ; Theoretically sentences Capitalize the first letter of each sentence ;characters Capitalize each letter ;words Capitalize the first letter of each word ; But this attribute is limited to text keybord, There are many ways to change dishes locally, which have not been realized , To be studied ;
- keyboardType For keyboard type , The small dish is divided into numeric keyboard and alphabetic keyboard ; Depending on the type of keyboard you set , The keyboard will be different ;
a. The keypad
–1-- datetime It can be accessed at any time on the keyboard : and /;
–2-- phone It can be accessed at any time on the keyboard # and *;
–3-- number It can be accessed at any time on the keyboard + - * /
b. Alphabetic keyboard
–1-- emailAddress It can be accessed at any time on the keyboard @ and .;
–2-- url It can be accessed at any time on the keyboard / and .;
–3-- multiline Applicable to multi line text wrapping ;
–4-- text Default alphabetic keyboard ;
- textInputAction It is usually the operation type in the lower right corner of the keyboard , The side dishes have been cleaned up a little before , There are many types , I suggest you try more ;
- autofocus Get focus automatically , Enter the page and get the focus first , And pop up the keyboard , If there are more than one in the page TextField Set up autofocus by true Get the first focus first ;
- focusNode Get focus manually , It can cooperate with keyboard input to reduce the number of user operations , Get the next... Directly TextField The focus of ;
- enabled Set to false after TextField In non editable status ;
- decoration Decorate the border , This can be used to adjust TextField Show the effect ; You can set the front icon , Post picture , Border properties , Content properties, etc , The side dishes will be tried in the follow-up ; To completely delete the decoration , take decoration Set it to blank ;
- inputFormatters Format validation , For example, the original Android There are usually restrictions on entering mobile phone number or other special characters , stay Flutter You can also use this to limit the format , Including regular expressions ; Need to introduce package:flutter/services.dart;
a. LengthLimitingTextInputFormatter Limit the maximum characters ;
b. WhitelistingTextInputFormatter Only characters in the whitelist are allowed ; Such as digitsOnly Only numbers... Are supported [0-9];
c. BlacklistingTextInputFormatter Prevent the input of characters in the blacklist ; Such as singleLineFormatter Force a single line ; Analysis of the source code RegExp(“[/\]”) Regular expressions can be set ;
- onChanged Callback when text content changes , It can monitor in real time TextField Input content ;
- controller Text controller , Listen for input callback ;
- onTap Click on TextField Time callback ;
- onEditingComplete Callback when submitting content , It is usually called back when you click the enter button ;
- onSubmit Callback when submitting , Not to onEditingComplete Use at the same time , The difference lies in onSubmit Is a callback with a return value ;
Summary of problems
1. The keyboard pop-up will put the input box or other components on top ?
When TextField Get focus pop-up input box , The input box may top up the elements in the page , To avoid this , Can be Scaffold in resizeToAvoidBottomPadding: false that will do ,resizeToAvoidBottomPadding Set whether to adjust automatically body Property the size of the control , To avoid Scaffold The bottom is covered ;
2. Press and hold the input box to display 【 shear / Copy / Paste 】 How to set Chinese menu ?
When TextField Set up enableInteractiveSelection Long press after attribute to display the menu , The default is English , By setting Flutter Internationalization to deal with ;
- stay pubspec.yaml In the integration flutter_localizations;
- stay MaterialApp Set the localization agent and supported language types in ;
3. Use maxLength How to cancel the character counter in the lower right corner of the text box ?
- take maxLength Set to null Use only LengthLimitingTextInputFormatter Limit the maximum characters ;
- Set up InputDecoration in **** Attribute is empty ; But there's room at the bottom , Just hide, not disappear ;
Text box is an essential component in daily development , The side dish is still in the process of exploration , If you have any questions, please give more guidance !
source : Little monk aze
边栏推荐
- Leetcode70 (Advanced), 322
- [wave modeling 2] three dimensional wave modeling and wave generator modeling matlab simulation
- Summary of the function and usage of const, volatile and restrict
- Detailed explanation of multi-mode input event distribution mechanism
- [wave modeling 1] theoretical analysis and MATLAB simulation of wave modeling
- Chia Tai International Futures: what is the master account and how to open it?
- 【FPGA教程案例10】基于Verilog的复数乘法器设计与实现
- The most complete regular practical guide of the whole network. You're welcome to take it away
- Introduction to the gtid mode of MySQL master-slave replication
- Global and Chinese market of network connected IC card smart water meters 2022-2028: Research Report on technology, participants, trends, market size and share
猜你喜欢
【海浪建模1】海浪建模的理论分析和matlab仿真
107. SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍
"Upside down salary", "equal replacement of graduates" these phenomena show that the testing industry has
SAP UI5 应用的主-从-从(Master-Detail-Detail)布局模式的实现步骤
Leetcode70 (Advanced), 322
测试部新来了个00后卷王,上了年纪的我真的干不过了,已经...
【纯音听力测试】基于MATLAB的纯音听力测试系统
Relationship between classes and objects
BGP comprehensive experiment
Reasons and solutions of redis cache penetration and avalanche
随机推荐
ROS command line tool
Ruby tutorial
Apifox (postman + swagger + mock + JMeter), an artifact of full stack development and efficiency improvement
The performance of major mainstream programming languages is PK, and the results are unexpected
How to use words to describe breaking change in Spartacus UI of SAP e-commerce cloud
Arbitrum: two-dimensional cost
抓包整理外篇——————状态栏[ 四]
程序员SQL数据脚本编码能力弱,BI做不出来怎么办?
Chia Tai International Futures: what is the master account and how to open it?
Parameter passing mechanism of member methods
Les phénomènes de « salaire inversé » et de « remplacement des diplômés » indiquent que l'industrie des tests a...
测试部新来了个00后卷王,上了年纪的我真的干不过了,已经...
The difference between string STR and new string
POAP:NFT的采用入口?
Database performance optimization tool
Multilingual Wikipedia website source code development part II
Identifiers and keywords
107. Some details of SAP ui5 overflow toolbar container control and resize event processing
RB technology stack
Talking about JVM 4: class loading mechanism