Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有文本字段的颤振覆盖小部件_Android_Flutter - Fatal编程技术网

Android 带有文本字段的颤振覆盖小部件

Android 带有文本字段的颤振覆盖小部件,android,flutter,Android,Flutter,嘿,StackOverflow上的朋友们,你们今天过得怎么样!我是一个新手,在理解这门语言时,我面临着一些问题。当我点击一个按钮时,我正试图覆盖一个小尺寸的文本字段。然而,我面临着一个找不到任何实质性小部件的问题。TextField需要一个材料组件祖先你们能帮我解决这个问题吗?非常感谢 祝你们编码快乐 正如Flatter所说,TextField需要一个实体小部件作为父对象。您可以将文本字段包装在其中一个具有实质性小部件的小部件中:卡片,对话框,抽屉,支架。或者您可以直接使用材料 void sh

嘿,StackOverflow上的朋友们,你们今天过得怎么样!我是一个新手,在理解这门语言时,我面临着一些问题。当我点击一个按钮时,我正试图覆盖一个小尺寸的文本字段。然而,我面临着一个
找不到任何实质性小部件的问题。TextField需要一个材料组件祖先
你们能帮我解决这个问题吗?非常感谢

祝你们编码快乐


正如Flatter所说,
TextField
需要一个实体小部件作为父对象。您可以将文本字段包装在其中一个具有实质性小部件的小部件中:
卡片
对话框
抽屉
支架
。或者您可以直接使用
材料

void showOverlay(BuildContext context) async {
    OverlayState overlayState = Overlay.of(context);
    OverlayEntry overlayEntry = OverlayEntry(
      builder: (context) => Material( //Use a Material Widget
        child: TextField(
          decoration: InputDecoration(
            border: OutlineInputBorder(),
            labelText: 'Enter text',
          ),
        ),
      ),
    );

    overlayState.insert(overlayEntry);
  }

我建议使用对话框而不是覆盖。对话框不覆盖整个屏幕,它本身包含材质小部件。而且它更漂亮:)。

嘿,阿拉什·穆罕默德!希望你今天过得愉快!谢谢你回答我的问题!你的代码工作得很好!然而,我注意到文本字段现在位于顶部。我是否可以通过添加位置来修改此材质小部件?或者对话是一种更好的方法?当它出现时,我能格式化它的大小吗?我试图只显示一个小的
文本字段
,并在同一文本字段中添加一个提交按钮。这是否过于雄心勃勃?谢谢你的帮助!祝你今天愉快!:)@谢谢你,希望你也有美好的一天。对话更好。你可以按你想要的方式定制它。请参阅此链接:
void showOverlay(BuildContext context) async {
    OverlayState overlayState = Overlay.of(context);
    OverlayEntry overlayEntry = OverlayEntry(
      builder: (context) => Material( //Use a Material Widget
        child: TextField(
          decoration: InputDecoration(
            border: OutlineInputBorder(),
            labelText: 'Enter text',
          ),
        ),
      ),
    );

    overlayState.insert(overlayEntry);
  }