我对Flutter没有太多经验,当我点击onTap按钮时,showDate Picker和showTimePicker不会显示.我不知道这与Android Studio和Emulator或代码有关.如果可能的话请帮助我,谢谢.

Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              DateTimeWidget(titleText: 'Date',
                  valueText: dateProv.toString(),
                  iconSection: CupertinoIcons.calendar,
                onTap: () async {
                final DateTime? getValue = await showDatePicker(context: context, initialDate: DateTime.now(),
                    firstDate: DateTime(2021),lastDate: DateTime(2030));
                if(getValue != null) {
                  final format = DateFormat.yMd();
                  ref.read(dateProvider.notifier).update((state) => format.format(getValue));
                }
                },
          ),
              const Gap(22),
              DateTimeWidget(titleText: 'Time',
                valueText: ref.watch(timeProvider),
                iconSection: CupertinoIcons.clock,
                onTap: () async{
                final TimeOfDay getTime = showTimePicker(context: context, initialTime: TimeOfDay.now()) as TimeOfDay;

                if(getTime != null) {
                  ref.read(timeProvider.notifier).update((state) => getTime.format(context));
                }
                },
              ),
            ],
          ),

这是datTimeWidget代码

class DateTimeWidget extends StatelessWidget {
  const DateTimeWidget({
    super.key,
    required this.titleText,
    required this.valueText,
    required this.iconSection,
    required this.onTap,
  });

  final String titleText;
  final String valueText;
  final IconData iconSection;
  final VoidCallback onTap;

  @override
  Widget build(BuildContext context) {
    return Expanded(
      child:Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Text(titleText,style: AppStyle.headingOne,
          ),
          const Gap(6),
          Material(
            child: Ink(
              decoration: BoxDecoration(color: Colors.grey.shade200,
              borderRadius: BorderRadius.circular(10),
              ),
              child: InkWell(

                splashColor: Colors.amber,
                borderRadius: BorderRadius.circular(10),
                onTap: () =>onTap,
                child: Container(
                  padding: const EdgeInsets.symmetric(horizontal: 12,vertical:12 ),
                  decoration: BoxDecoration(color: Colors.transparent,
                    borderRadius:  BorderRadius.circular(8),
                  ),
                  child: Row(children: [
                    Icon(iconSection),
                    const Gap(6),
                    Text(valueText),
                  ]),
                ),
              ),
            ),
          ),
        ],),
    );
  }
}

我曾try 更改Ink和Inkwell课程,但不起作用.

推荐答案

InkWell的onTap回调中您只需forgot to add brackets "()".因此您的功能永远不会被调用和执行.只需在onTap后面添加括号,一切都会正常工作.

onTap: () => onTap(),

而不是:

onTap: () => onTap,

Flutter相关问答推荐

我的flutter代码显示一个小部件被认为是死代码,为什么?

为什么Flutter 翼扩展卡有上下边框?

GitHub Actions工作流secret中的特殊字符未被保留

怎么才能像这样在摆动着这些曲线呢?

如果我使用搜索栏,如何在嵌套滚动视图中停止自动滚动?

Flutter 日期时间格式

StateNotifer正在riverpod中提供初始状态值(bool)

如何在flutter中将所有单词的第一个字母大写

Dart/Flutter 泛型:类型 '(SearchFilterItemModel) => String' 不是类型 '(SearchFilterItemModel) => String' 的子类型

Select 文本时如何更改 Flutter 中的光标 colored颜色 ?

在 Dart 中按土耳其语字母顺序对字符串进行排序

如果其他Provider 的帐户已存在,如何阻止用户登录?

网页浏览器不支持鼠标滚动的行项目

Riverpod 2.3.6:AutoDisposeNotifier和ref.onDispose自动处理

无法在 ListView (Flutter) 中限制 Card 的最大宽度

如何解决需要一个标识符,但得到的是:.try 在:之前插入一个标识符.dart 错误

有什么办法可以消除Flutter 中的传递依赖?

如何使用 Rrect 或类似工具在 flutter 中绘制梯形线?

按下 Command+W 时关闭窗口

Flutter:如何判断嵌套列表是否包含值