首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可填充的TextformField

可填充的TextformField
EN

Stack Overflow用户
提问于 2019-07-11 12:35:09
回答 3查看 432关注 0票数 1

我在Textformfield中添加了一个图标,有没有办法在禁用Textformfield的情况下仍然可以点击后缀图标?

如果我启用了文本字段,则文本将可填充。

下面是代码

代码语言:javascript
复制
TextFormField (
                     enabled: false,
                     decoration: InputDecoration (
                       filled: true,
                         prefixIcon: Icon (Icons.content_copy),
                         suffixIcon: IconButton (icon: Icon (
                           Icons.camera_alt,
                           color: Colors.orange,
                         ), onPressed: () {
                           print ("halooooooo");
                         }),
                         labelText: "Photo KTP *"),
                   )
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-11 12:53:55

我在这里找到了解决方案:

只需添加readOnly : true

代码语言:javascript
复制
TextFormField(
                    readOnly: true,
                    decoration: InputDecoration(
                        prefixIcon: Icon(Icons.content_copy),
                        suffixIcon: IconButton(icon: Icon(
                          Icons.camera_alt,
                          color: Colors.orange,
                        ), onPressed: (){
                          print("halooooooo");
                        }),
                        labelText: "Foto KTP *"),
                  )
票数 1
EN

Stack Overflow用户

发布于 2019-07-11 12:53:31

不能,因为如果查看TextFormFieldTextField的源代码,就会发现它使用的是基于enabled属性的IgnorePointer小部件。

您可以使用Row小部件实现相同的功能,请查看以下代码:

代码语言:javascript
复制
Row(
              children: [
                Expanded(
                  child: TextFormField(
                    enabled: false,
                    decoration: InputDecoration(
                        filled: true,
                        prefixIcon: Icon(Icons.content_copy),
                        labelText: "Photo KTP *"),
                  ),
                ),
                IconButton(
                    icon: Icon(
                      Icons.camera_alt,
                      color: Colors.orange,
                    ),
                    onPressed: () {
                      print("halooooooo");
                    }),
              ],
            )
票数 1
EN

Stack Overflow用户

发布于 2019-07-11 12:54:17

TextFormField替换为以下内容

代码语言:javascript
复制
  Stack(
    children: <Widget>[
      TextFormField(
        enabled: false,
        focusNode: FocusNode(),
        decoration: InputDecoration(
            filled: true,
            prefixIcon: Icon(Icons.content_copy),
            labelText: "Photo KTP *"),
      ),
      Positioned(
        top: 10,
        bottom: 10,
        right: 10,
        child: IconButton(
          icon: Icon(
            Icons.camera_alt,
            color: Colors.orange,
          ),
          onPressed: (){
            print('halloooo');
          },
        ),
      ),
    ],
  ),

你可以用这样的东西来达到同样的效果。

这是怎么回事?

我使用的是Stack小部件。使用Stack,我们可以在同一空间中放置多个元素。有了定位,我把相机按钮放在右边。相机按钮将对触摸作出反应。

编辑:

with read-only

你可以让按钮与read-only: true一起工作,但是输入仍然会触发文本编辑动画。

使用stack时,输入是真正禁用的。

with stack

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56981686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档