小编iDe*_*ode的帖子

数据消息与通知消息(可折叠和不可折叠的混淆)

数据消息:

文件说:

不可折叠:每条消息对客户端应用程序都很重要并且需要传递。除通知消息外,所有消息默认都是不可折叠的。

这意味着数据消息是不可折叠的并且被认为是重要的。然而,文档还说:

当您的应用程序处于后台或终止时,设备会将纯数据消息视为低优先级,并将被忽略。

那么,它们实际上是否重要?如果重要,那么例如,如果应用程序在后台,它们为什么会被忽略。


通知消息:

文件说:

除通知消息外,所有消息默认都是不可折叠的。

我通过 Firebase 通知编辑器发送两条通知消息,并且是可折叠的,旧消息应该折叠(或被最新消息替换),但我可以看到这两条通知都显示在 Android 和 iOS 上。

那么,为什么通知消息被认为是“可折叠的”呢?

android firebase flutter firebase-cloud-messaging

7
推荐指数
1
解决办法
1141
查看次数

如何在 json_serialized 中使用私有构造函数

我在类中使用私有构造函数,但代码生成失败

该类Foo没有默认构造函数。

我正在使用最新json_serializable: 版本,即6.1.5

@JsonSerializable()
class Foo {
  final int count;
  Foo._(this.count);

  factory Foo.fromJson(Map<String, dynamic> json) => _$Foo._FromJson(json);
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

dart flutter json-serializable

7
推荐指数
1
解决办法
1092
查看次数

IntelliJ IDEA 当前文件选项卡在打开其他文件时关闭

每次我打开一个新文件(单击)时,现有文件都会自行关闭。它在最新版本中开始发生。我该如何解决?

intellij-idea

7
推荐指数
1
解决办法
230
查看次数

如何在 Sweep Gradient 中包含 Stroke Cap?

截屏

你可以看到我的弧线从顶部开始,但有一些区域被涂成粉红色,应该是白色的。我认为这是因为我正在使用StrokeCap.round,但是如何删除该部分?


画家班:

class MyPainter extends CustomPainter {
  void paint(Canvas canvas, Size size) {
    double centerPoint = size.height / 2;

    Paint paint = Paint()
      ..color = Colors.white
      ..strokeCap = StrokeCap.round
      ..style = PaintingStyle.stroke
      ..strokeWidth = 20;

    paint.shader = SweepGradient(
      colors: [Colors.white, Colors.pink],
      tileMode: TileMode.repeated,
      startAngle: _degreeToRad(270),
      endAngle: _degreeToRad(270 + 360.0),
    ).createShader(Rect.fromCircle(center: Offset(centerPoint, centerPoint), radius: 0));

    double startAngle = _degreeToRad(270);
    double sweepAngle = _degreeToRad(95 / 100 * 360);
    Rect rect = Rect.fromCircle(center: Offset(centerPoint, centerPoint), radius: centerPoint);
    canvas.drawArc(rect, startAngle, sweepAngle, false, …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

6
推荐指数
1
解决办法
418
查看次数

.cast() 和 List.from() 和 List.castFrom() 有什么区别

List foo -> List bar
我可以使用三种方法

1.List<MyClass> bar = foo.cast<MyClass>()
2.List<MyClass> bar = List.castFrom(foo)
3.List<MyClass> bar = List.from(foo)
Run Code Online (Sandbox Code Playgroud)

有什么不同?

dart flutter dart-2

6
推荐指数
1
解决办法
1312
查看次数

Navigator.of(context, rootNavigator: true).push(); 中`rootNavigator`有什么用?

有什么区别

Navigator.of(context).pushNamed("/route");
Run Code Online (Sandbox Code Playgroud)

Navigator.of(context, rootNavigator: true).pushNamed("/route");
Run Code Online (Sandbox Code Playgroud)

更重要的是,rootNavigator: trueNavigator课堂上设置有什么用,我阅读了文档,但不太清楚。任何人都可以正确解释差异吗?

dart flutter

6
推荐指数
2
解决办法
5697
查看次数

Dart 的分析器和 linter 有什么区别?

你一定在里面看到过analysis_options.yaml

analyzer:
  exclude: [build]
  strong-mode:
    implicit-casts: false

linter:
  rules:
    - camel_case_types
Run Code Online (Sandbox Code Playgroud)

两者都在编译时使用吗?两者之间有什么区别?

dart

6
推荐指数
1
解决办法
219
查看次数

未定义名称“AppLocalizations”。(文档)创建新项目后

我创建了一个新的 Flutter 项目并做了一个

\n
flutter pub get\n
Run Code Online (Sandbox Code Playgroud)\n

除了类中的错误外,框架中没有任何错误AppLocalizations

\n
\n

URI 目标不存在:\'package:flutter_gen/gen_l10n/app_localizations.dart\'。

\n
\n

在此输入图像描述

\n

另一个错误(显然是因为同一个包)

\n

在此输入图像描述

\n
\n

笔记:

\n

我已经尝试过:

\n
    \n
  • 重新启动 IDE + 使缓存无效并重新启动
  • \n
  • flutter pub add flutter_gen
  • \n
  • 重新启动 Dart 分析服务器
  • \n
  • 更新包
  • \n
\n

我在用着:Flutter 2.6.0-11.0.pre \xe2\x80\xa2 channel dev

\n

flutter

6
推荐指数
2
解决办法
6601
查看次数

如何修复整个项目的特定 lint 警告?

我的项目的不同文件中有许多 lint 警告,例如:

Prefer const with constant constructors.
Use key in widget constructors.
...
Unnecessary string interpolation. 
Run Code Online (Sandbox Code Playgroud)

有没有办法只修复特定的警告,例如

dart fix prefer_const_constructors 
Run Code Online (Sandbox Code Playgroud)

PS:我不想修复所有警告,因为我可以运行dart fix --apply.

dart android-studio flutter

6
推荐指数
1
解决办法
2043
查看次数

如何删除列中某些子项的填充?

Padding(
  padding: const EdgeInsets.all(20.0),
  child: Column(
    children: [
      // ... some widgets
      Padding(
        padding: const EdgeInsets.all(-20.0), // Error: How to do something like this?
        child: FooWidget()
      ), 
      // ... more widgets
      BarWidget(), // Remove padding from here also
      // ... and some more widgets
    ],
  ),
)
Run Code Online (Sandbox Code Playgroud)

20我正在为我的提供填充Column,但我想从它的一些子项中删除此填充,例如FooWidgetBarWidget等。我该怎么做?

注意:我并不是在寻找解决方法,例如为其他小部件而不是根部件提供填充Column,或者将这些小部件包装在另一个小部件中Column并为该列提供填充等。

flutter flutter-layout

6
推荐指数
1
解决办法
5977
查看次数