浅识Flutter 基本组件之TextField组件 输入框

本文介绍了Flutter的TextField组件,用于创建输入框,如用户名、密码等。讨论了maxLength限制输入字符长度,maxLines允许的行数,obscureText是否隐藏输入内容,enableInteractiveSelection是否启用复制粘贴功能,以及textCapitalization设置字符大小写和keyboardType定制键盘类型。
摘要由CSDN通过智能技术生成

浅识Flutter 基本组件之TextField组件 输入框

TextField组件(输入框组件)用于在应用程序中输入用户名、密码、查找内容等。

  body: TextField(  ),

在这里插入图片描述

maxLength

maxLength属性用于设置输入框中可以输入的最大字符长度,并在输入框的右下角有当前输入长度与最大长度的对比显示。
例如maxLength的值为 8时,最长只能输入8位,多了就输入不进去了

  body: TextField(maxLength: 8),

在这里插入图片描述
如果想超过设定的长度,可以更改maxLengthEnforced的属性值,默认为打开,不允许超过设定值。把它关掉就可以随便输入了;

maxLengthEnforced: false

在这里插入图片描述

maxLines

输入太多时一行写不下,这时候就要换行
在这里插入图片描述
maxLines属性用于设置允许展现的最大行数
例如。在页面上最多可以输入多个字符,并且可以自动换2行或任意行

 TextField(maxLength: 8,maxLengthEnforced: false,maxLines: null)//自动换任意行
 TextField(maxLength: 8,maxLengthEnforced: false,maxLines: 2)//自动换任意行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,可以通过 `GridView` 和 `Card` 实现一个两行两列输入框组件,每个输入框都带有标题。以下是实现的代码示例: ``` import 'package:flutter/material.dart'; class TwoByTwoInput extends StatelessWidget { final List<String> titles; final List<TextEditingController> controllers; TwoByTwoInput({required this.titles, required this.controllers}); @override Widget build(BuildContext context) { return GridView.count( crossAxisCount: 2, children: List.generate(4, (index) { return Card( child: Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( titles[index], style: TextStyle(fontWeight: FontWeight.bold), ), SizedBox(height: 8), TextField( controller: controllers[index], decoration: InputDecoration( hintText: 'Enter ${titles[index]}', border: OutlineInputBorder(), ), ), ], ), ), ); }), ); } } ``` 在使用时,需要提供两个参数:`titles` 和 `controllers`。`titles` 是一个包含四个字符串的列表,分别对应四个输入框的标题;`controllers` 是一个包含四个 `TextEditingController` 对象的列表,分别对应四个输入框的文本控制器。 示例用法: ``` class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { final List<String> titles = ['Title 1', 'Title 2', 'Title 3', 'Title 4']; final List<TextEditingController> controllers = [ TextEditingController(), TextEditingController(), TextEditingController(), TextEditingController(), ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Two by Two Input'), ), body: Center( child: TwoByTwoInput(titles: titles, controllers: controllers), ), ); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值