如何灵活调整Flutter的TextFormField高度?固定高度无法扩展的解决方法
解决TextFormField固定外层Container高度后无法自动增高的问题
问题出在你给外层Container设置了固定高度height:40,这直接锁死了整个输入区域的高度上限,哪怕TextFormField开启了maxLines: null支持多行输入,也无法突破这个限制。另外你代码里的Expanded是无效的——它只能在Row、Column这类弹性布局容器中发挥作用,单独放在Container里没有任何扩展效果。
下面给你两种针对性的解决方式:
方式一:保留初始最小高度,允许输入框随内容增高
把Container的height改成minHeight,这样既满足了初始设计的40px高度需求,当输入内容增多时,容器会自动跟随TextFormField的高度扩展:
Container( minHeight: 40, child: TextFormField( maxLines: null, decoration: const InputDecoration( border: InputBorder.none, counterText: '', hintText: 'enter text', ), ), )
方式二:固定输入框显示高度,内容超出时滚动查看
如果业务要求必须保持40px的固定显示高度,可以给TextFormField包裹SingleChildScrollView,这样输入内容超出高度时可以滚动查看全部内容:
Container( height: 40, child: SingleChildScrollView( child: TextFormField( maxLines: null, decoration: const InputDecoration( border: InputBorder.none, counterText: '', hintText: 'enter text', ), ), ), )
你可以根据实际需求选择对应的方案。
内容的提问来源于stack exchange,提问作者ddongyun
相关产品推荐
相关产品推荐

