flutter - Flutter TextFormField 提示标签和光标位置?
问题描述
不幸的是,提示标签上升到顶部边框。
这是我的代码:
TextFormField(
cursorColor: Colors.black,
decoration: customInputDecoration("Nickname")
),
// ...
InputDecoration customInputDecoration(String labelText) {
return InputDecoration(
labelText: labelText,
labelStyle: TextStyle(color: Color.fromRGBO(69,202,255, 0.3)),
fillColor: Colors.white,
focusedBorder: _outlineInputBorder(30),
enabledBorder: _outlineInputBorder(30),
border: _outlineInputBorder(30),
focusedErrorBorder: _outlineInputBorder(30),
errorBorder: _outlineInputBorder(30),
);
}
OutlineInputBorder _outlineInputBorder(double radius) {
return OutlineInputBorder(
borderRadius: BorderRadius.circular(radius),
borderSide: BorderSide(
width: 3,
color: Color.fromRGBO(69,202,255, 0.3),
),
);
}
解决方案
删除 textformfield 的默认边框。如果你不用容器包裹它并给它一个边框,你想要的情况就会消失。但是现在不可能使用 textformfield 属性来做到这一点。
Container(
margin: EdgeInsets.only(left: 20, right: 20, top: 50),
padding: EdgeInsets.all(5),
decoration: _outlineInputBorder(30),
child: TextFormField(
cursorColor: Colors.black,
decoration: customInputDecoration("Nickname")),
)
InputDecoration customInputDecoration(String labelText) {
return InputDecoration(
labelText: labelText,
labelStyle: TextStyle(color: Color.fromRGBO(69, 202, 255, 0.3)),
fillColor: Colors.white,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
border: InputBorder.none,
focusedErrorBorder: InputBorder.none,
errorBorder: InputBorder.none,
);
}
BoxDecoration _outlineInputBorder(double radius) {
return BoxDecoration(
border: Border.all(
color: Color.fromRGBO(69, 202, 255, 0.3),
style: BorderStyle.solid,
width: 3.0,
),
color: Colors.transparent,
borderRadius: BorderRadius.circular(radius),
);
}
推荐阅读
- r - 为什么在尝试调用 SVM 进行 OCR 时出现此错误?
- python - Selenium Webdriver 在文本区域中插入来自 python 的文本
- java - 用于 n 位的 Java 计算器
- javascript - 在旧数据之外添加数据,而不是用 fs writeFile 覆盖它们
- python-3.x - 具有起始值的 Python hashlib SHA256
- reactjs - 如何从打字稿中同步函数中的异步函数获取结果?
- flutter - 在 Flutter Provider 中如何检查消费者收到的数据何时更新
- reactjs - 如何通过反应添加新配方?
- r - 子集数据,如果列条目包含字母
- ajax - 在 MVC ASP.net 中使用 AJAX 为 SPA 创建返回到先前状态的按钮