在禁用的 TextField InputDecoration 范围内时启用颤动工具提示小部件

问题描述 投票:0回答:2

我在表单小部件中有一个 TextField 小部件,并且 TextField 在其装饰中有一个工具提示小部件。

...surrounding input field redacted...

decoration: InputDecoration(
  labelText: 'Date Carried Out',
  suffixIcon: const Tooltip(
    message: 'Tooltip message',
    child: Icon(Icons.info,),
  ),                              
),

在某些情况下,整个表单将被禁用(因此它是组成字段) - 但是,我需要 some 工具提示保持启用状态,以便用户仍然可以发现所显示的字段数据的含义。

flutter 小部件对此有补贴吗?如果不行的话还可以实现吗?

谢谢你

flutter widget
2个回答
0
投票

您可以在 Flutter 中尝试此行为,根据表单是否禁用有条件地禁用工具提示。您可以使用

ignorePointer
小部件的
Tooltip
属性来控制它是否响应用户输入事件。

以下是实现方法:

bool isFormDisabled = true; // Set this value based on your application logic

Form(
  // Set the Form's state based on whether it is disabled or not
  autovalidateMode: isFormDisabled ? AutovalidateMode.disabled : AutovalidateMode.always,
  child: Column(
    children: [
      TextFormField(
        decoration: InputDecoration(
          labelText: 'Date Carried Out',
          suffixIcon: Tooltip(
            // Conditionally disable the tooltip based on the form's state
            ignorePointer: isFormDisabled,
            message: 'Tooltip message',
            child: Icon(Icons.info),
          ),
        ),
        // Add any other properties you need for the TextFormField
      ),
      // Add other form fields as needed
    ],
  ),
);

在此示例中,

ignorePointer
小部件的
Tooltip
属性设置为
isFormDisabled
,这决定了工具提示是否响应用户输入事件。当
isFormDisabled
true
时,工具提示将被禁用,并且不会响应用户输入,即使表单被禁用,用户仍然可以发现正在显示的字段数据的含义。

希望这种方法可以帮助您在 flutter 应用程序中控制您想要的形式。


0
投票

我不太明白,但似乎您在表单内的文本字段中有一个工具提示,并且即使表单被禁用,您也想保留工具提示。

您可以将 formKey 定义为可为空,并在 formKey 值后面显示相关的工具提示

decoration: InputDecoration(
      labelText: "Date Carried Out",
      suffixIcon: (_formKey != null)
          ? const Tooltip(
              message: 'Tooltip message',
              child: Icon(Icons.info),
            )
          : null),
© www.soinside.com 2019 - 2024. All rights reserved.