微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter:如何修复多行启用文本字段底部的 SuffixIcon?

如何解决Flutter:如何修复多行启用文本字段底部的 SuffixIcon?

如何像 WhatsApp 一样修复 Multiline Enable TextField 底部的 SuffixIcon?

这是当前的场景:

enter image description here

这是我想要实现的:

enter image description here

我怎样才能做到这一点?

这是文本字段的代码

Container(
        width: 350,padding: EdgeInsets.symmetric(horizontal: 15),decoration: Boxdecoration(
            color: Color(0xffEDEDED),borderRadius: BorderRadius.circular(20)),child: TextFormField(
          keyboardType: TextInputType.multiline,maxLines: null,decoration: Inputdecoration(
              border: InputBorder.none,hintText: 'Type here...',hintStyle: TextStyle(color: Color(0xff606060),fontSize: 12),suffixIcon: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,mainAxisSize: MainAxisSize.min,children: [
                  IconButton(
                      icon: Icon(Icons.camera_alt),onpressed: () {}),IconButton(
                      icon: Icon(Icons.send),onpressed: sendMessage),],)),),)

解决方法

你可以像下面这样将发送按钮放在 TextField 的底部:

TextFormField(
controller: cnt_msg,decoration: new InputDecoration(
  suffixIcon: InkWell(
      onTap: () {},child: Container(
          width: 50,alignment: Alignment.bottomCenter,height: 100,child: Icon(Icons.send,size: 25))),labelText: "Message",border: new OutlineInputBorder(
    borderRadius: new BorderRadius.circular(25.0),borderSide: new BorderSide(),),maxLines: 5,

)

应该尝试以下解决方案,这是不正确的,但您可以使用它来实现您的定位用户界面:

Container(
  width: 350,padding: EdgeInsets.symmetric(horizontal: 15),decoration: BoxDecoration(color: Color(0xffEDEDED),borderRadius: BorderRadius.circular(20)),child: Stack(children: [
    TextFormField(
      keyboardType: TextInputType.multiline,maxLines: null,decoration: InputDecoration(
        border: InputBorder.none,hintText: 'Type here...',hintStyle: TextStyle(color: Color(0xff606060),fontSize: 12),contentPadding: EdgeInsets.only(right: 90),Positioned(bottom: 0,right: 0,child: Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,mainAxisSize: MainAxisSize.min,children: [
        IconButton(icon: Icon(Icons.camera_alt),onPressed: () {}),IconButton(icon: Icon(Icons.send),],))

  ]),)

enter image description here

,

你可以试试这个方法,当添加多于一行时,容器大小会自动增加:

这个答案在某种程度上也是正确的

    Container(
       margin: EdgeInsets.symmetric(horizontal: 16.0),decoration: BoxDecoration(
         borderRadius:BorderRadius.all( Radius.circular(30.0)),color: Colors.grey
       ),child: Column(
          children: [

            TextField(
              keyboardType: TextInputType.multiline,Align(
              alignment: Alignment.bottomCenter,child: Row(
                mainAxisAlignment: MainAxisAlignment.end,children: [
                  Icon(Icons.camera_alt),SizedBox(width: 10.0,Icon(Icons.send),)
,

让我知道这有效。

Container(
              width: 350,decoration: BoxDecoration(
                  color: Color(0xffEDEDED),child: TextFormField(
                keyboardType: TextInputType.multiline,decoration: InputDecoration(
                    border: InputBorder.none,suffixIcon: Column(
                      mainAxisSize: MainAxisSize.max,mainAxisAlignment: MainAxisAlignment.end,children: [
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.end,mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [
                            IconButton(
                                icon: Icon(Icons.camera_alt),)),

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。