我在 Flutter 应用程序上实现了一个简单的 Cupertino TimerPicker 小部件,并且由于某种原因,选择器上显示的分钟值一旦超过 20 就会被修剪:
https://www.dropbox.com/s/jqu45skpjob4it0/Screenshot%202019-11-01%2013.51.29.png
最初我在 showModalBottomSheet 小部件中使用了一些自定义的小部件,但即使在尝试在列小部件中显示计时器选择器的最简单实现后,问题仍然存在。
当我旋转选择器时,我可以获得正确的值。例如,如果我选择 22 分钟,onTimerDurationChanged 会传递 22 分钟的 Duration 值,即使选择器在 UI 中仅显示“2”(如屏幕截图所示)。所以看起来问题在于小部件如何显示值。
这是 Timer Picker 子组件在其包含的 Column 小部件中的代码:
Expanded(
child: Container(
height: 200,
child: CupertinoTimerPicker(
mode: CupertinoTimerPickerMode.hm,
initialTimerDuration: Duration(minutes: 20),
onTimerDurationChanged: (Duration value) {},
),
),
),
更多详细信息:
1) 只有在设置时才会出现该错误
mode: CupertinoTimerPickerMode.hm
如果模式设置为 .ms 或 .hms,问题就会消失。不幸的是,我需要使用 .hm 模式。
2) 在 iOS 上运行应用程序时出现问题(在模拟器和物理设备上)。具有讽刺意味的是,它在 Android 上运行良好。
--
我在控制台或 Android Studio 编辑器中没有收到任何错误。我不确定在哪里寻找故障排除。