我完成了一个 Flutter 应用程序,正在准备发布 iOS 版本。Flutter文档说要添加App ID,但我不记得我在Flutter中如何称呼它了。在 pubspec.yaml 中它只有一个name设置,但这不是包名称。另外,我是否可以在 iOS 设置中为我的应用程序使用通配符名称?
今天在开发Android应用程序时,在logcat中收到以下错误消息:
您的目标是 Android Oreo 并使用自适应图标,而没有为 FCM 通知设置后备可绘制对象。这可能会导致使用 Oreo 的设备发生不可逆转的崩溃。要了解有关此问题的更多信息,请检查:https : //issuetracker.google.com/issues/68716460
我花了一段时间来追查其含义和该怎么做,所以我在下面添加了一个答案。
当我阅读源代码时,我经常看到这样的东西(来自TextField):
/// {@macro flutter.widgets.editableText.keyboardType}
final TextInputType keyboardType;
Run Code Online (Sandbox Code Playgroud)
这是什么@macro意思?
我找到了答案,所以我将其作为自我回答问答发布在下面。
当您MediaItem在audio_service 中设置时,您还不知道歌曲的持续时间,因为此时 just_audio还没有告诉您任何更改。
在常见问题解答说,更新MediaItem如下:
modifiedMediaItem = mediaItem.copyWith(duration: duration);
AudioServiceBackground.setMediaItem(modifiedMediaItem);
Run Code Online (Sandbox Code Playgroud)
但我不清楚如何或在哪里做到这一点。GitHub 存储库中的示例应用程序通过提供预先计算的时间来回避这个问题。( GitHub 问题)
我如何以及在哪里将持续时间从 just_audio 传输到 audio_service 以便它可以更新侦听器?
我发现了一些有用的东西,所以我在下面添加了一个答案。
我正在测试一个包含以下代码的小部件(改编自此处):
await tester.pumpWidget(
MediaQuery(
data: const MediaQueryData(devicePixelRatio: 1.0),
child: FocusScope(
node: focusScopeNode,
autofocus: true,
child: Row(
children: <Widget>[
MongolEditableText(
key: key1,
controller: TextEditingController(),
focusNode: focusNode,
style: const TextStyle(fontSize: 9),
cursorColor: cursorColor,
),
MongolEditableText(
key: key2,
controller: TextEditingController(),
focusNode: focusNode,
style: const TextStyle(fontSize: 9),
cursorColor: cursorColor,
),
],
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我得到以下异常:
具有多个子级的水平 RenderFlex 具有 null textDirection,因此布局顺序未定义。
我尝试textDirection向正在测试的自定义小部件添加一个参数,但这没有改变任何内容。
我在这里找到了答案,所以我在下面添加一个答案。
我在Swift做了一个练习项目来学习如何NSTimer工作.启动计时器有一个按钮,一个按钮使计时器无效.当我点击每个按钮一次时,它工作正常.但是,当我多次点击开始计时器按钮时,我无法再使其无效.
这是我的代码:
class ViewController: UIViewController {
var counter = 0
var timer = NSTimer()
@IBOutlet weak var label: UILabel!
@IBAction func startTimerButtonTapped(sender: UIButton) {
timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
}
@IBAction func cancelTimerButtonTapped(sender: UIButton) {
timer.invalidate()
}
func update() {
++counter
label.text = "\(counter)"
}
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了这些问题,但我无法从他们那里收到我的问题的答案(许多人是过去的Obj-C pre-ARC日子,其他人则是不同的问题):
我想在Flutter中的Base64Url中编码以下字符串,然后在Dart服务器上对其进行解码。
"username:password"
Run Code Online (Sandbox Code Playgroud)
我怎么做?以及如何在Base64中做到这一点?
我以前见过人们在 Dart 中生成随机布尔值,但我不记得怎么做。
我刚刚找到了答案,所以我将其添加到问答风格下方。