【问题标题】:Flutter Todoey App problem onLongpress: longpressCallbackFlutter Todoey App关于Longpress的问题:longpressCallback
【发布时间】:2021-06-13 18:46:35
【问题描述】:

我在 task_title.dart 页面中遇到了一个问题,onLongPress: longPressCallback, [line 14] 上面写着这个

(错误:参数类型“Function”不能分配给参数类型“void Function()?”。(argument_type_not_assignable at [todoey_flutter] lib/widgets/task_tile.dart:14)

>谁能帮帮我???

file:///Users/mdrubayat/Desktop/Image%206-12-21%20at%209.53%20PM.jpg

这里是代码>>

import 'package:flutter/material.dart';

class TaskTile extends StatelessWidget {
  final bool isChecked;
  final String taskTitle;
  final Function checkboxCallback;
  final Function longPressCallback;

  TaskTile({required this.isChecked, required this.taskTitle, required this.checkboxCallback, required this.longPressCallback});

  @override
  Widget build(BuildContext context) {
    return ListTile(
      onLongPress: longPressCallback,
      title: Text(
        taskTitle,
        style: TextStyle(
            decoration: isChecked ? TextDecoration.lineThrough : null),
      ),
      trailing: Checkbox(
        activeColor: Colors.lightBlueAccent,
        value: isChecked,
        onChanged: (newValue) {
          checkboxCallback(newValue);
        },
      ),
    );
  }
}

【问题讨论】:

  • 你能分享一下引发错误的代码吗?
  • 是的,我已经给出了代码
  • 尝试在 longPressCallback 之前添加 () =>
  • 我认为问题不在 longPressCallback 上,而在 checkboxCallback 上。该功能是什么样的?如果 newValue 是布尔值,请尝试执行类似 final Function(bool) checkboxCallback;
  • 非常感谢@JaimeOrtiz,您的解决方案有效!!!

标签: flutter dart mobile-application


【解决方案1】:

ListTile 的 onLongPress 属性需要一个 Void 函数。 目前,您使用的函数可能不是 Void 类型。

您应该将参数 longPressCallback 定义为 void 函数:

final void Function() longPressCallback;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多