flutter - 自定义颤振文本字段中的最大行数
问题描述
我在颤振应用中有一个 AppTextField 如下:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart' as intl;
class AppTextField extends StatefulWidget {
final int maxLines;
final String? title;
final TextInputType? keyboardType;
final bool autoFocus;
final TextInputAction inputAction;
final bool isSuffixIcon;
AppTextField(
{this.title,
this.maxLines: 1,
this.keyboardType,
this.autoFocus: false,
this.inputAction: TextInputAction.next,
this.isSuffixIcon: false});
@override
State<StatefulWidget> createState() => AppTextFieldSate();
}
class AppTextFieldSate extends State<AppTextField> {
String? text = '';
bool isRTL(String text) {
return intl.Bidi.detectRtlDirectionality(text);
}
@override
Widget build(BuildContext context) => Container(
child: TextField(
textDirection: isRTL(text!) ? TextDirection.rtl : TextDirection.ltr,
textInputAction: widget.inputAction,
keyboardType: widget.keyboardType,
autofocus: widget.autoFocus,
style: Theme.of(context).textTheme.bodyText1,
maxLines: widget.maxLines,
decoration: InputDecoration(
labelText: widget.title,
suffixIcon: widget.isSuffixIcon
? Icon(Icons.check_circle, color: Theme.of(context).hintColor)
: Container(),
),
onChanged: (value) {
setState(() {
text = value;
});
}));
}
当我在 AppTextField 中使用maxLines时,出现了问题!
AppTextField(maxLines: 5, keyboardType: TextInputType.multiline)
一行中只输入一个字符,如下图:
我的问题是:
为什么会出现这个问题,我该如何解决?
解决方案
我解决了 :) 我必须在 suffixIcon 小部件中使用 null 而不是 Container 。容器小部件造成问题。
suffixIcon: widget.isSuffixIcon
? Icon(Icons.check_circle, color: Theme.of(context).hintColor)
: null,
推荐阅读
- azure - 使用自己的服务主体和 KEY 连接到 Azure 自动化
- javascript - React.js 和箭头函数与普通函数
- linux - 构建 Postgres 时出错,并且“...必须具有有效的 64 位整数数据类型”
- reactjs - 检查 `component` 的渲染方法
- python - 在 Python 中使用 eval() 时如何避免警告未使用的局部变量
- c - 使用动态内存的插入排序
- javascript - 如何在 axios 拦截器中为 React 项目添加全局加载/旋转效果
- python-3.x - 访问使用 webdav 客户端 python 加密的 nextcloud SSL 时出现问题
- python - Nginx 不在 Windows 上使用 Waitress+Django 提供静态文件
- java - Java/Json - 如何在 HttpPost 请求标头中添加/传递 ApiKey?