- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当我在 Fluter 中调用方法 showTimePicker() 时,它会显示一个 12 小时制的选择器(使用 AM 和 PM 时段)。此外,当我在 TimeOfDay 对象上调用 format() 方法时,它会在 12 小时制中返回值。
如何将其更改为 24 小时制?我发现我需要更改 Window 类中的 alwaysUse24HourFormat 属性,但我不知道该怎么做。
谁能帮帮我?提前感谢您的回答。
编辑:代码如下:
Future<Null> _selectTime(BuildContext context) async {
final TimeOfDay response = await showTimePicker(
context: context,
initialTime: pickedTime,
);
if (response != null && response != pickedTime) {
setState(() {
pickedTime = response;
});
}
}
编辑2:我只在 Android 上尝试过。
最佳答案
在阅读此答案之前,您需要了解 MediaQuery.of() 的工作原理。本质上,任何给定页面中都有一个小部件树。每个小部件都有一个 Context
,您可以将其视为树中的一个节点。当您调用 MediaQuery.of(context) 时,它基本上会向上跟踪树,直到找到(或未找到)一个 MediaQuery 小部件,然后返回与该小部件关联的数据。
你想做的事是可能的,但你必须稍微小心你如何做。请参阅下面的最小代码示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
builder: (context, child) =>
MediaQuery(data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true), child: child),
home: new Container(
color: Colors.white,
child: Center(
child: Builder(
builder: (context) => FlatButton(
onPressed: () => showTimePicker(context: context, initialTime: TimeOfDay.now()),
child: Text("Show Time Picker"),
),
),
),
),
);
}
}
这里有几点需要注意。首先是我在 MaterialApp 的构建器中从旧的 MediaQueryData 创建一个新的 MediaQueryData。这是因为您无法修改 MaterialQueryData 的属性。
第二个是我用新的 MediaQuery 将子级包装在 MaterialApp 的构建器中。这是必要的,以便导航器中的所有“页面”(在此实例中是 Material 应用程序的一部分)使用 MediaQuery.of() 读取这个新的 MediaQueryData。
第三个是我在 FlatButton 周围使用了一个 Builder。如果我不这样做,它将使用的上下文将是 MyApp 的上下文,而不是 MaterialApp 下的上下文。如果您创建了自己的类来包含“页面”,那就没有必要了。
MediaQuery 必须放在现在的位置,因为如果您将它放在“页面”中(容器下的任何位置),TimePicker 小部件实际上不会读取它。这是因为 TimePicker 实际上将自己作为导航堆栈的顶部元素插入,该元素位于 Navigator(和 MaterialApp)下方,而不是嵌入在您的页面下方。如果不是这种情况,那么使用时间选择器会更加困难。
我不知道我解释得很好,所以这里有一个图表:
MyApp <------ Context (the one that would have been used without the builder)
MaterialApp
MediaQuery (from flutter)
MediaQuery copy (that was made in the builder)
Navigator (implicit - built as part of MaterialApp)
|- Container
| Center
| Builder <----\ Context (used to showTimePicker)
| FlatButton ----/
\- TimePicker
关于dart - 在 Flutter 中调用 showTimePicker() 时如何使用 24 小时制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52002388/
我有一个相当冗长的命令行程序,它需要用户输入参数,然后使用这些参数进行处理。我想做的是将程序拆分为交互式和非交互式。我试图这样做,并打算让非交互式程序“调用”交互式程序并使用结果(参数),基于这些参数
谁能解释为什么我们在构造函数的参数中使用大括号。 class Cars { String carName; bool isAuto; // create the constructor
我想知道是否有Dart函数,例如PHP的 strrev()。如果没有,您能否请向我展示任何源代码如何自行实现? 谢谢。 最佳答案 我还没有在API中找到一个新的Dart用户(截至今天下午)。但是,以任
我有一个组件,我想根据一个 bool 值绑定(bind)一个不同的 css 类。我的组件代码中有以下内容: bindCssClass(div, "open", this, "task.isOpen")
我一直在研究如何在dart中播放.wav文件,并且已经能够通过dart:html库中定义的AudioElement成功完成此操作。但是,我对使用dart:web_audio库感兴趣,并且遇到了所有这些
Dart 是否旨在实现许多与 Haxe 相同的功能,以便能够针对其他语言和运行时?它是语言和工具的既定目标还是已知目标? 最佳答案 不。Dart 专门针对 web 应用程序开发(更具体地说,客户端 w
我正在尝试让 dart 正常工作。作为编辑器,我想使用 emacs dart-mode。我有两个关于在没有 dart 编辑器的情况下使用 dart 的问题: 1) 我是否需要手动调用 dart2js,
我正在使用列表来创建墨水瓶按钮。我想将列表放在一个单独的 dart 文件中,并将该文件导入到我使用列表的文件中。我不知道如何导入列表。 https://pastebin.com/mf0kvsGu 我制
我正在编写一个 flutter 应用程序,它通过蓝牙 (FlutterBlue) 向设备发送命令。该设备控制一些 LED。通信总体上运行良好,但是:在用户界面上,我有一个控制光强度的 slider 。
我正在使用来自 Get started: command-line and server apps | Dart 的说明.运行 dart --version 时,我得到: Dart VM versio
var c 返回 3 但 10/7=1.4285,其余为 0.4285,operator % 有错误? void main() { var a = 10; var b = 7; var c
如文档中所述: The const keyword isn’t just for declaring constant variables. You can also use it to create
在 Dart 中,我如何最好地编写相当于(不可变/值/非对象) 的代码输出或引用参数 ? 例如在 C#-ish 中,我可能会编码: function void example() { int re
Dart 支持的多重继承机制有哪些? 最佳答案 不,Dart 不支持多重实现继承。 Dart 具有接口(interface),并且与大多数其他类似语言一样,它具有多个接口(interface)继承。
我正在寻找有关如何制作可以采用位置子参数的 web 组件的资源。就像是: {{value}} // this could be any uneditable element {{value}
使用polymer.dart 的Dart 应用程序的pubspec.yaml 文件如下所示(来自Polymer.dart Code Lab): name: polymer_and_dart descr
今天我决定开始学习 Dart 语言,我从 Tour 开始,那里有一个例子: // These work in a const string. const aConstNum = 0; const aC
我正在查找字符串类和其他一些资源,试图了解如何格式化字符串。首先,我试图将数字填充到字符串中,但不是精度。 例子: int a = 0, b = 5, c = 15, d = 46; String
我知道的大部分是Javascript。我相信“列表”是 Dart 最接近数组的东西,但它们在技术上是一样的吗?将它们视为数组是错误的吗?同样, map 会被视为对象吗?我意识到可能存在差异,但进行这种
现在,白色背景刺痛了我的眼睛,因为这是一个looong的黑夜。是否可以从 Dart 编辑器 (v 0.1) 更改主题(更改为更暗的主题)?选择背景颜色和语法高亮怎么样? 最佳答案 是的,这是可能的,我
我是一名优秀的程序员,十分优秀!