我对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课程,但不起作用.