class RobotEditText extends StatelessWidget {
final TextEditingController _controller = TextEditingController();
RobotEditText({super.key});
Widget build(BuildContext context) {
return TextField(
cursorWidth: 5/ratio,
style: TextStyle(
height: 1,
color: Colors.black, // 设置 hint 文字颜色为灰色
fontSize: 24 / ratio, // 设置 hint 文字大小
),
controller: _controller, // 绑定 controller
decoration: InputDecoration(
focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0 / ratio,
), // 聚焦时边框为蓝色
),
enabledBorder: const OutlineInputBorder(
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0 / ratio,
), // 聚焦时边框为蓝色
),
border: OutlineInputBorder(
borderSide: const BorderSide(
color: Colors.transparent,
width: 1.0 / ratio,
),
borderRadius: const BorderRadius.all(Radius.circular(10 / ratio)),
),
// Optional: Add a border for clarity
filled: true,
fillColor: MyBlack.withOpacity(0.05),
contentPadding: EdgeInsets.symmetric(
horizontal: 20 / ratio,
vertical: 0.0,
),
// Adjust padding
// contentPadding: EdgeInsets.symmetric(vertical: 4, horizontal: 12), // 设置顶部和底部的内边距为 0
hintText: '请输入',
hintStyle: TextStyle(
color: Colors.grey, // 设置 hint 文字颜色为灰色
fontSize: 24 / ratio, // 设置 hint 文字大小
),
),
);
}
}
使用 :
class MyCustomForm extends StatelessWidget {
const MyCustomForm({super.key});
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
child:
SizedBox(width: 374/ratio,
height: 44/ratio,
child:
RobotEditText()),
),
],
);
}
}