首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

reactive_forms自定义小部件中的Flutter typeahead textField不显示选定的选项文本

reactive_forms是一个用于Flutter的表单库,它提供了一种响应式的方式来处理表单输入和验证。在reactive_forms中,可以使用自定义小部件来扩展表单的功能。

在使用reactive_forms的自定义小部件时,如果想要使用typeahead textField,并且希望选定的选项文本能够显示出来,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了reactive_forms库。可以在pubspec.yaml文件中添加以下依赖项:
代码语言:txt
复制
dependencies:
  reactive_forms: ^0.13.0

然后运行flutter pub get命令来获取依赖项。

  1. 在Flutter代码中导入所需的包:
代码语言:txt
复制
import 'package:reactive_forms/reactive_forms.dart';
  1. 创建一个自定义小部件,继承自ReactiveFormField类,并实现必要的方法。在这个自定义小部件中,可以使用typeahead textField来实现自动完成的功能。
代码语言:txt
复制
class CustomTypeaheadField<T> extends ReactiveFormField<T> {
  CustomTypeaheadField({
    required String formControlName,
    required List<T> options,
    required String Function(T) displayText,
    required T Function(String) findOption,
  }) : super(
          formControlName: formControlName,
          builder: (field) {
            final formControl = field.control as FormControl<T>;
            final selectedOption = formControl.value;

            return TypeAheadFormField<T>(
              textFieldConfiguration: TextFieldConfiguration(
                decoration: InputDecoration(
                  labelText: 'Typeahead Field',
                ),
              ),
              suggestionsCallback: (pattern) {
                return options.where((option) {
                  final optionText = displayText(option);
                  return optionText.toLowerCase().contains(pattern.toLowerCase());
                }).toList();
              },
              itemBuilder: (context, suggestion) {
                final optionText = displayText(suggestion);
                return ListTile(
                  title: Text(optionText),
                );
              },
              onSuggestionSelected: (suggestion) {
                final optionText = displayText(suggestion);
                formControl.value = suggestion;
                formControl.markAsDirty();
              },
              validator: (value) {
                if (formControl.invalid) {
                  return 'Invalid value';
                }
                return null;
              },
              initialValue: selectedOption,
            );
          },
        );
}
  1. 在使用这个自定义小部件的地方,将其添加到表单中。可以使用ReactiveForm来创建表单,并将自定义小部件添加为表单的一个字段。
代码语言:txt
复制
ReactiveForm(
  formGroup: form,
  child: Column(
    children: [
      CustomTypeaheadField<String>(
        formControlName: 'typeaheadField',
        options: ['Option 1', 'Option 2', 'Option 3'],
        displayText: (option) => option,
        findOption: (text) => text,
      ),
      ElevatedButton(
        onPressed: () {
          if (form.valid) {
            // 表单验证通过,执行相应操作
          }
        },
        child: Text('Submit'),
      ),
    ],
  ),
);

在上述代码中,CustomTypeaheadField是一个自定义的小部件,它接受formControlName、options、displayText和findOption等参数。options是一个包含选项的列表,displayText是一个将选项转换为显示文本的函数,findOption是一个将文本转换为选项的函数。

通过以上步骤,就可以在reactive_forms的自定义小部件中使用typeahead textField,并且能够显示选定的选项文本。

关于腾讯云相关产品和产品介绍链接地址,可以参考腾讯云官方文档或者咨询腾讯云官方客服获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutte部件目录-Material Components 顶

实现Material Design指南的视觉,行为和运动丰富的小部件。 应用程序结构和导航 按钮 输入和选择 对话框,弹出框和面板 信息显示 布局 查看Flutter窗口小部件目录中的更多小部件。...TabBarView 显示与当前选定选项卡相对应的部件的页面视图。 通常与TabBar结合使用。 ?...输入和选择 TextField 触摸文本字段将放置光标并显示键盘。 TextField部件实现了这个组件。 ? Checkbox 复选框允许用户从一组中选择多个选项。...芯片代表小块中的复杂实体,如联系人。 ? Tooltip 工具提示提供的文本标签可帮助解释按钮或其他用户界面操作的功能。...将按钮封装在工具提示窗口小部件中,以便在按下窗口小部件时(或者当用户采取其他适当的操作时)显示标签。 ? DataTable 数据表显示一组原始数据。 它们通常出现在桌面企业产品中。

9.5K40

Flutter | 常用组件

之所以这样做,就是应为 Text 本身就是 RichText 的一个包装,而 RichText 是可以显示多种样式(富文本)的 widget,样式如下: 字体 在 flutter 中使用字体需要两个步骤...,使用 FadeInImage 之后会在图片的加载过程中显示一个占位符,在图片加载完成之后显示淡入 ICON 在 Flutter 中,可以直接使用 字体图标,它是将图标做成字体文件,然后通过指定不同的字符而现实不同的图片...而在 iconfont 中,只是将位码对应的字形做成了图标,所以不同的字符最终就会渲染成不同的图标 在 Flutter 中,iconfont 和图片相比有如下优势 1,体积小 2,矢量的图标,放大不会影响清晰度...大多数情况下我们都需要显示的提供一个 controller 来与文本框交互,如果没有提供,则 TextField 会自动创建一个 focusNode :用于控制 TextField 是否占有当前键盘输入的焦点...,//TODO 这里设置的不生效,日后解决 表单 Form 在实际开发中,在请求接口之前会对输入框中的数据进行校验,如果对每个 TextField 都进行校验会非常麻烦,为此,Flutter 提供了一个

11.4K30
  • 如何在 Flutter 中设置背景图像【Flutter专题16】

    本教程将向您展示如何在 Flutter 中设置背景图像。 在 Flutter 应用程序中设置背景图像的常用方法是使用DecorationImage....在移动设备上,当用户与文本字段交互时,通常会显示屏幕键盘。...小部件是当前焦点节点,则会显示屏幕键盘。...正如您在上面的输出中看到的那样,当显示键盘时,部分内容是不可见的。一种可能的解决方法是将 Scaffold 包裹在带有背景图像的 Container 中。...还可以定义图像应如何刻入可用空间并设置图像的不透明度。如果应用程序包含可能触发屏幕键盘的文本字段,您还需要处理如上所示的情况。 对于其他自定义,您可以阅读我们的教程,?

    12.1K21

    Flutter 旋转轮

    在在本文中,我们将探讨 “Flutter 中的旋转轮”。我们还将在flutter应用程序中使用「flutter_spinwheel」包来实现带有自定义选项的「Spinwheel」演示程序。...它将在您的设备上显示所选的文本。...**hideOthers:**此属性用于确定是否应绘制快门以隐藏除选定以外的所有选项。 **shutterPaint:**如果适用,此属性用于绘制用于绘制快门的设置。此外,它是可定制的。...**在此构建器中,我们将添加itemCount和itemBuilder。在itemBuilder中,我们将导航容器小部件。在小部件内,我们将添加一个边距,即容器的高度。...他的子属性,我们将添加一个列小部件。在此小部件中,我们将添加两个文本,分别是问题和答案。

    8.9K20

    探索 Flutter 中的 NavigationRail:使用详解

    NavigationRailDestination( label: Text('Home'), // 自定义标签文本 // 其他属性... ) 通过使用上述自定义选项,您可以轻松地根据应用程序的需求和设计风格定制...您可以将不同的页面放置在 IndexedStack 中,并根据导航栏的选定项设置索引来显示相应的页面。...当用户点击导航栏中的选项时,onDestinationSelected 回调函数会被调用,并根据选定的索引来更新 _selectedIndex。...您可以使用 leading 和 trailing 属性来实现在导航栏中添加额外的元素,例如标签、按钮或其他自定义小部件。...灵活的自定义选项: NavigationRail 提供了丰富的自定义选项,包括背景色、选中项的颜色、标签类型等,使开发人员可以根据应用程序的设计和品牌风格定制导航栏的外观。

    66410

    Flutter 中使用Chip 小部件【Flutter专题30】

    本文是关于 Flutter 中的 Chip 小部件。我们将大致了解小部件的基本原理,然后通过代码来实现它。事不宜迟,让我们开始吧。 概述 典型的chip是一个圆角的小盒子。...它有一个文本标签,并以一种有意义且紧凑的方式显示信息。chip可以在同一区域同时显示多个交互元素。...可删除的内容列表(一系列电子邮件联系人、最喜欢的音乐类型列表等)。 img 在 Flutter 中,您可以使用以下构造函数来实现 Chip 小部件: Chip({ Key?...shadowColor }) 只有label属性是必需的,其他是可选的。一些常用的有: avatar:在标签前显示一个图标或小图像。 backgroundColor : chip的背景颜色。...您可以在官方文档中找到有关其他属性的更多详细信息。但是,对于大多数应用程序,我们不需要超过一半。 简单示例 这个小例子向您展示了一种同时显示多个chip的简单使用的方法。

    2.9K20

    为Flutter应用程序添加交互性 顶

    如何创建自定义小部件。 无状态和有状态小部件之间的区别。 你如何修改你的应用程序,使其对用户输入做出反应? 在本教程中,您将为仅包含非交互式小部件的应用添加交互性。...当小部件的状态改变时,状态对象调用setState(),告诉框架重绘小部件。 在本节中,您将创建一个自定义有状态小部件。...第4步:将有状态小部件插入小部件树中 将您的自定义状态小部件添加到应用构建方法中的小部件树中。...开发人员可能不在乎突出显示是如何管理的,并且倾向于轻敲框处理这些细节。 Dart代码:lib/main.dart 其它交互式小部件 Flutter提供各种按钮和类似的交互式小部件。...处理手势,Flutter Widget框架导览中的一部分:如何创建按钮并使其响应输入。 Flutter中的手势:Flutter手势机制的描述。

    4.2K20

    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程

    │ ├── custom_textfield.dart # 自定义文本框组件│ └──...Text 小部件,设置 Text 小部件的样式。...drawer: 一个抽屉(Drawer),从屏幕边缘滑出,用于显示导航链接或选项。bottomNavigationBar: 一个位于底部的导航栏,用于在不同的页面之间切换。...扩展知识Flutter中常见的Flutter按钮组件:1. **ElevatedButton**特点:具有阴影效果,看起来像是浮起的。适用场景:适用于大多数需要突出显示的按钮。2....**MaterialButton**特点:类似于ElevatedButton,但提供了更多的样式选项。适用场景:适用于需要更多自定义样式的场景。6.

    8110

    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发

    后第一个页面显示为register_screen.dart页面的内容我们main.dart的内容为#file:g:\clone\ff-flutter\lib\main.dartimport 'package...具体步骤如下:修改“请输入手机号”输入框的文字颜色:在 TextField 的 style 属性中设置文字颜色为 FFFFFF。...中,自定义组件非常重要,可以提高代码的复用性和可维护性。...widgets 目录的作用widgets 目录通常用于存放自定义的小部件,这些小部件可能在应用的多个地方使用。通过将自定义组件集中在一个目录下,可以方便地管理和查找它们。...定义自定义组件:在新文件中定义自定义组件。在需要使用的地方导入和使用该组件。

    5900

    Flutter 全栈式——基础控件

    在Flutter中,UI小控件有两种设计风格,一种是Material设计,这是安卓的官方设计风格,另一种则是Cupertino风格,是iOS的官方设计风格。...文本显示的样式 textAlign TextAlign 文本对齐方式 textDirection TextDirection 文本显示方向 softWrap bool 是否自动换行 overflow...clip:剪辑溢出的文本;fade:将溢出的文本淡化为透明;ellipsis:用省略号表示溢出;visible:在容器之外显示溢出的文本 textScaleFactor double 每个逻辑像素的字体像素值...简单说就是字体缩放系数 maxLines int 文本最多可显示的行数。如果文本超过给定的行数,则根据溢出规则截断 textSpan TextSpan 以TextSpan方式显示文本。...,这9个点其实就是八个方向加上正中 gaplessPlayback bool 当ImageProvider发生变化时,显示新图片的过程中,如果值为true则保留旧图片直至显示出新图片为止;如果false

    3.8K40

    使用Flutter和Dart开发跨平台移动应用的详细教程

    步骤1:安装Flutter和Dart首先,确保你的系统中已经安装了Flutter和Dart。..., ), ), ); }}这个简单的应用程序包含一个带有标题的顶部栏和一个居中显示的文本部分。...步骤4:运行应用程序在命令行中运行以下命令,启动你的应用程序:flutter run这将启动应用程序并在模拟器或连接的设备上运行。步骤5:定制你的应用程序开始修改代码,根据你的需求自定义应用程序。...你可以添加新的部件、页面、样式,以及与后端服务的交互等。高级主题1. 使用Flutter部件Flutter拥有丰富的部件库,可帮助你构建漂亮的用户界面。...例如,你可以使用ListView创建滚动列表,TextField添加文本输入框,以及FlatButton创建可点击的按钮。

    41110

    Flutter 中自定义动画底部导航栏

    在这个博客中,我们将探索Flutter中的自定义动画底部导航栏。我们将看到如何实现自定义动画底部导航栏的演示程序以及如何在您的 Flutter 应用程序中使用它。...介绍: 显示在应用程序底部的Material小部件,用于在几个视角中进行选择,通常在 3 到 5 范围内的某个位置。底部导航栏包含各种选项,如文本标签、图标或两者。...它展示了自定义底部导航栏将如何在您的 Flutter 应用程序中工作。它显示当用户点击底部导航栏图标时,它们将被动画化并显示标签文本。当用户点击任何图标时,颜色也会发生变化和动画。...它将显示在您的设备上。 特性 自定义动画底部导航栏的一些属性是: selectedIndex:这个属性用于被选中的项是一个索引。更改此属性将更改所选项目并为其设置动画。默认为零。...这是我对用户交互自定义动画底部导航栏的一个小介绍。

    9K30

    【Flutter】评级对话框组件

    扑朔迷离的一切都是小部件! 向用户显示一些知识是一个了不起的想法,这是我们使用对话框的最基本的想法。在Flutter这个惊人的UI工具包中,我们有几种不同的方法来构建对话框。...在在本博客中,我们将探讨「Flutter中」 的“「评级对话框”」。我们将看到如何使用flutter应用程序中的「rating_dialog」包来实现美观的评级对话框演示程序并进行自定义。...在小部件内,我们将添加一个Center小部件,并且其子属性添加一个「MaterialButton()。「在此按钮中,我们将添加文本,颜色,按钮形状和onPressed方法。...在此对话框中,我们将添加」ratingColor」表示评级栏(星形图标和发光效果)的颜色,「标题」,「消息」表示对话框的消息/描述文本,「图像」,「submitButton」表示提交按钮的标签/文本,「...当我们运行应用程序时,我们应该获得屏幕的输出,如屏幕下方的截图所示。 在此对话框中,您将看到我们将添加图像,标题,描述,星级,评论的textField和最后一个提交按钮。

    4.1K50

    Flutter 1.22 正式发布

    举例来说,假设您想在首页上显示一系列小部件,并允许用户点击一个小部件以转到专门针对该颜色的详细信息页面。 ?...这个想法是要在导航和Flutter的其余部分之间统一模型,同时解决许多问题并添加功能。实际上,这个小例子几乎不涉及Navigator 2.0的内容。...我们已经在Scrollable类中提供了支持,例如ListView和SingleChildScrollView(记住用户的滚动位置)和TextField(恢复他们输入的文本),并且我们计划将其扩展到其他小部件...预览:平滑滚动以提供不匹配的输入和显示频率 当输入和显示频率不同时,Flutter团队与Google内部合作伙伴合作,极大地提高了滚动性能。...例如,Pixel 4输入的运行频率为120hz,而显示屏的运行频率为90hz。滚动时,这种不匹配会导致性能下降。

    7.5K20

    【老孟Flutter】Flutter 2 新增的功能

    此外,内置的上下文菜单已添加到Material和Cupertino设计语言的TextField和TextFormField小部件中。最后,添加了抓手 到ReorderableListView小部件。...举例来说,假设您的应用中包含以下代码行: 使用不推荐使用的参数创建Flutter小部件 由于不赞成使用此构造函数的参数,因此应将其替换为以下内容: 图片发布 创建一个Flutter小部件,其中不推荐使用的参数已替换...例如,以下内容显示您的应用程序中已引发溢出异常,该异常会在Visual Studio Code中弹出一个选项,用于调试DevTools中的问题。...要启用此功能,请在Flutter Inspector中启用“反转超大图像”。 图片发布 启用“反转超大图像”选项,以突出显示比需要放大的图像大的图像。...图片发布 实际应用中的“反转超大图像”选项 此外,根据大众的需求,除了在Flutter Inspector的“布局资源管理器”中显示有关灵活布局的详细信息外,我们还添加了显示固定布局的功能,使您能够调试各种布局

    7.9K20
    领券