flutter textfield hinttext居中对齐完美解决

flutter 导航自定义搜索高度TextField hintText向上移动的问题

在这里插入图片描述
解决方案1

///搜索控件widget
class TextFieldWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
//      padding: EdgeInsets.only(left:8,right: 8),
      decoration: BoxDecoration(
        borderRadius:BorderRadius.circular(20),
        border: Border.all(color: Colors.grey)
      ),
      height: 40,
        child:  TextField(
          autofocus: false,
          minLines: 1,
          enableInteractiveSelection: false,

          decoration: InputDecoration(
//            border: InputBorder.none, // 去掉下滑线
            hintText: '请输入搜索内容',
            contentPadding: EdgeInsets.all(0),
            prefixIcon: Icon(Icons.search),
              alignLabelWithHint: true,
//如果跟你预计的居中不理想 可以微调下height的值
            hintStyle:TextStyle(
            height: 2.0,
             ) ,
            enabledBorder: OutlineInputBorder(
              /*边角*/
              borderRadius:BorderRadius.circular(20),
              borderSide: BorderSide(
                color: Colors.white, //边线颜色为白色
                width: 1, //边线宽度为2
              ),
            ),
            focusedBorder: OutlineInputBorder(
              borderSide: BorderSide(
                color: Colors.white, //边框颜色为白色
                width: 1, //宽度为5
              ),
              borderRadius:BorderRadius.circular(20),

            ),
          ),


          style: TextStyle(
            fontSize: 14,
              textBaseline:TextBaseline.alphabetic,

          ),

      ),
    );
  }
}

解决方案2

import 'package:flutter/material.dart';
///搜索控件widget
class TextFieldWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(left:8,right: 8),
      decoration: BoxDecoration(
        borderRadius:BorderRadius.circular(20),
        border: Border.all(color: Colors.grey)
      ),
      height: 36,
        child:  TextField(
          autofocus: false,
          minLines: 1,
          enableInteractiveSelection: false,

          decoration: InputDecoration(
//            border: InputBorder.none, // 去掉下滑线
            hintText: '请输入搜索内容',
            contentPadding: EdgeInsets.all(0),
            prefixIcon: Icon(Icons.search,color: Colors.grey,),
              alignLabelWithHint: true,
            helperStyle: TextStyle(
                fontSize: 14
            ),
//如果跟你预计的居中不理想 可以微调下height的值
            hintStyle:TextStyle(
            height: 2.0,
             ) ,
            enabledBorder: OutlineInputBorder(
              /*边角*/
              borderRadius:BorderRadius.circular(20),
              borderSide: BorderSide(
                color: Colors.white, //边线颜色为白色
                width: 1, //边线宽度为2
              ),
            ),
            focusedBorder: OutlineInputBorder(
              borderSide: BorderSide(
                color: Colors.white, //边框颜色为白色
                width: 1, //宽度为5
              ),
              borderRadius:BorderRadius.circular(20),

            ),
          ),


          style: TextStyle(
            fontSize: 14,
              textBaseline:TextBaseline.alphabetic,

          ),

      ),
    );
  }
}

//如果跟你预计的居中不理想 可以微调下height的值
            hintStyle:TextStyle(
            height: 2.0,
             ) ,
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值