马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在Flutter中,实现输入框一般使用TextField,通过设置它的属性给输入框和内部文字设置差别的样式。
Flutter 输入框实现简单例子
- import 'package:flutter/material.dart';
- class MyEditPage extends StatelessWidget {
- const MyEditPage({super.key});
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: const Text("My EditText"),
- ),
- //body 是否延伸到底部控件
- extendBody: true,
- body: Column(
- children: [
- //Spacer创建一个可调整的空间隔,可用于调整Flex容器(如行或列)中窗口小部件之间的间距。
- const Spacer(),
- const Spacer(),
- Container(
- //通常用于给一个盒子的四边设置边距,用这个对象可以设置内边距。
- margin: const EdgeInsets.all(10),
- child: const Center(
- child: TextField(
- minLines: 1, //必须填1,输入内容才可居中,其他默认是左上对齐
- maxLines: 10, //最多行数,大于1即可
- decoration: InputDecoration(
- border: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)),
- //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)),
- focusedBorder: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)),
- //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)),
- //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)),
- errorBorder: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)),
- //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)),
- disabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)),
- //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)),
- fillColor: Colors.white,
- filled: true,
- contentPadding: const EdgeInsets.all(5),
- ),
- ),
- ))
- ],
- ),
- );
- }
- }
复制代码 
下述代码可以抽出来:
- OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)), //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow))
复制代码
- static const border = OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)), //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow));
复制代码- class MyEditPage extends StatelessWidget { const MyEditPage({super.key}); static const border = OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(10)), //圆角
- borderSide: BorderSide(width: 1, color: Colors.yellow)); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("My EditText"), ), //body 是否延伸到底部控件 extendBody: true, body: Column( children: [ //Spacer创建一个可调整的空间隔,可用于调整Flex容器(如行或列)中窗口小部件之间的间距。 const Spacer(), const Spacer(), Container( //通常用于给一个盒子的四边设置边距,用这个对象可以设置内边距。 margin: const EdgeInsets.all(10), child: const Center( child: TextField( minLines: 1, //必须填1,输入内容才可居中,其他默认是左上对齐 maxLines: 10, //最多行数,大于1即可 decoration: InputDecoration( border: border, focusedBorder: border, enabledBorder: border, errorBorder: border, disabledBorder: border, fillColor: Colors.white, filled: true, contentPadding: const EdgeInsets.all(5), ), ), )) ], ), ); } OutlineInputBorder getBorder() { OutlineInputBorder outlineInputBorder = const OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(10)), //圆角 borderSide: BorderSide(width: 1, color: Colors.blue)); return outlineInputBorder; }}
复制代码
TextField介绍
TextField 是 Material Design 文本字段。它允许用户使用硬件键盘或屏幕键盘输入文本。每当用户更改TextField 中的文本时,TextField 都会调用 onChanged 回调。如果用户完成在TextField 中的输入(比方,通过按下软键盘上的按钮),TextField 将调用 onSubmitted 回调。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |