简体   繁体   English

Flutter TextFormField 提示 label 和 cursor Z4757FE07FD492A8BE0EA6A760D683D6ZE

[英]Flutter TextFormField hint label and cursor position?

I want to do this:我想做这个: 在此处输入图像描述

But I can only create this:但我只能创建这个: 在此处输入图像描述

Unfortunately the hint label goes up to the top border.不幸的是,提示 label 上升到顶部边界。

This is my code:这是我的代码:

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),
        ),
    );
}

Remove the default borders of textformfield.删除 textformfield 的默认边框。 If you don't wrap it with the container and give it a border, the situation you want will go away.如果你不用容器包裹它并给它一个边框,你想要的情况将 go 消失。 But now it is not possible to do it using textformfield properties.但是现在不可能使用 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),
  );
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM