Flutter Cupertino 文本字段大小错误

Posted

技术标签:

【中文标题】Flutter Cupertino 文本字段大小错误【英文标题】:Flutter Cupertino Text Field Sizing Error 【发布时间】:2021-11-10 02:55:52 【问题描述】:

当用户双击文本以调出“剪切复制粘贴”时,弹出窗口出现大小错误,文本被截断。我找不到任何可以提供帮助的问题。

请参阅下面的屏幕截图和代码

Padding(
                          padding: const EdgeInsets.only(left: 12.0),
                          child: CupertinoTextField(
                            textCapitalization: TextCapitalization.words,
                            focusNode: titleFocus,
                            autofocus: true,
                            controller: titleController,
                            keyboardType: TextInputType.multiline,
                            maxLines: null,
                            cursorColor: Theme.of(context).cursorColor,
                            onSubmitted: (text) 
                              titleFocus.unfocus();
                              FocusScope.of(context)
                                  .requestFocus(contentFocus);
                            ,
                            textInputAction: TextInputAction.next,
                            style: GoogleFonts.roboto(
                              textStyle: TextStyle(
                                  //color: Color(0xff3a4759),
                                  fontSize: 20,
                                  color: Theme.of(context).accentColor,
                                  fontWeight: FontWeight.w700),
                            ),
                            placeholder: "Sermon Title",
                            placeholderStyle: TextStyle(
                                color: Colors.grey.shade400,
                                fontSize: 20,
                                fontFamily: 'Helvetica Neue',
                                fontWeight: FontWeight.w500),
                            decoration: BoxDecoration(
                              border: Border.all(
                                color: Colors.grey.withOpacity(0.0),
                              ),
                            ),
                          ),
                        ),

【问题讨论】:

【参考方案1】:

试试下面的代码希望对你有帮助

声明一个控制器

  final TextEditingController _controller = new TextEditingController();

您的小部件:

     Column(
       children:[
         SizedBox(
           height:30,
         ),
         Padding(
              padding: const EdgeInsets.all( 16.0),
              child: CupertinoTextField(
                textCapitalization: TextCapitalization.words,
                autofocus: true,
                controller: _controller,
                keyboardType: TextInputType.multiline,
                maxLines: null,
                cursorColor: Theme.of(context).cursorColor,
                textInputAction: TextInputAction.next,
                placeholder: "Sermon Title",
                placeholderStyle: TextStyle(
                    color: Colors.grey.shade400,
                    fontSize: 20,
                    fontFamily: 'Helvetica Neue',
                    fontWeight: FontWeight.w500),
                decoration: BoxDecoration(
                  border: Border.all(
                    color: Colors.grey.withOpacity(0.0),
                  ),
                ),
              ),
            ),
      ],
     ),
       

您的结果屏幕 ->

【讨论】:

这不起作用,仍然出现裁剪文本 @user16034511 请查看我更新的答案,您也使用了Container 而不是SizedBox,希望对您有所帮助

以上是关于Flutter Cupertino 文本字段大小错误的主要内容,如果未能解决你的问题,请参考以下文章

键盘打开时如何固定小部件布局?

Flutter :启用文本字段时,背景图像向上移动。 “resizeToAvoidBottomInset”禁用滚动。我哪里错了?

如何在 Flutter 中更改文本字段的字体大小?

在路由后,TextField单击重建/重新加载小部件

07Flutter--Cupertino

Flutter之Cupertino (iOS风格) Widgets