小编mir*_*cal的帖子

RxJS:在特定事件后发出缓冲区

问题:我想创建 Rxjs 组合(函数链),这将导致缓冲来自一个 Observable 的值,直到发生特定事件,然后同步发出所有缓冲值,然后缓冲直到下一个事件。

我使用这个函数来收集所有必须等到我的应用程序调用授权的 http 请求。然后运行所有这些请求。(它在 Angular4 HttpClient Interceptor 中实现),这就是我的用例,但我通常会寻求有关如何创建此类 rx 链的解决方案。

为什么 Rxjs 缓冲区不够用。从我读取和测试的缓冲区要么需要确切的时间范围,要么在获取调度程序而不是时间作为参数的情况下,它在检测到最后一个调度程序的“事件”传播后重新订阅调度程序。我希望它是这样工作的:当出现第一个请求时,我开始缓冲然后订阅调度程序,在调度程序发出后,停止缓冲,重新发送所有缓冲的值,并等待下一个新请求再次开始缓冲和再次启动调度程序。

现在我的解决方案是使用未定义或我的可观察的辅助对象,代码大致如下:

private observable: Observable<boolean>;

makeRequest(): Observable<boolean> {
    if (this.observable !== void 0) {
        return this.observable;
    } else {
        this.observable = this.authenticationReuqest()
            .share()
            .finally(() => this.observable = void 0);

        return this.observable;
    }
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我有点缓冲我的请求,通过 maiking 它们 .delay() 直到相同的多播可观察对象发出,然后在它发出后我就清理它(尽管不需要取消订阅,因为它最终会在完成或出错后清理) .

如果有人知道如何用纯 Rxjs 替换这个解决方案,我很感兴趣。我有一些感觉,虽然我无法得到确切的解决方案,但 Buffer 和 Zip 的某种组合可以使它发生。

谢谢托马斯

rxjs typescript

5
推荐指数
1
解决办法
2410
查看次数

如何使用 Flutter 在 VSCode 上修复可自动修复的问题?

我已经更新了 pedantic 包并最终解决了 1K+ 问题。其中许多是prefer_single_quotes 或不必要的等等。它们只需单击一下即可修复。我认为 eslint 或其他一些工具可以在 VSCode 中做到这一点。

有没有办法用 Flutter 项目做到这一点?我找到了 dartfix 包,但在运行后说“没有推荐的更改”。我想要做的是修复问题选项卡上的所有可自动修复的问题。

pub.dev 上的 dartfix

visual-studio-code flutter

5
推荐指数
3
解决办法
2799
查看次数

如何创建一个在所有屏幕上都保持活动状态的小部件?就像 Spotify 的迷你播放器一样

我目前正在构建一个播客应用程序,我想要实现的是类似于 Spotify 中的迷你播放器的东西。

当用户点击播客并开始收听时,我想打开一个迷你播放器并使其在所有页面上活跃。

我首先想到的是使用 Overlay 小部件或为所有页面使用自定义导航器并将该导航器放入堆栈中。我想知道以前是否有人实施过类似的事情,或者解决这个问题的最佳方法是什么。

Spotify 迷你播放器

flutter

5
推荐指数
1
解决办法
1280
查看次数

如果没有 GoogleServices-Info.plist,Firebase 消息传递将无法工作

我的印象是,这GoogleServices-Info.plist不再是强制性的,因为 FlutterFire CLI 很好地将配置文件放在 dart 代码上,例如firebase_options_flavor1.dart

应用程序可以在没有 GoogleServices-Info.plist 的情况下运行,但在添加 Firebase Messaging 后,如果没有此文件,它就会开始崩溃。

我的问题是:

  1. 还需要 GoogleServices-Info.plist 吗?
  2. 如果是,是否可以远程添加 firebase 配置?有了 Dart,这很容易。但很难注入本机代码。

Github 上的一些相关消息。准确描述我的问题的评论:https://github.com/firebase/flutterfire/issues/8119#issuecomment-1048738598

dart 初始化崩溃并发出通知的问题:https ://github.com/firebase/flutterfire/issues/7752

评论仅 dart 初始化不起作用的地方:https://github.com/firebase/flutterfire/issues/8119#issuecomment-1047823455

ios firebase flutter

5
推荐指数
1
解决办法
343
查看次数

Flutter:如何将小部件与列的右上角对齐?

根据this SO answer,我正在尝试将我的更多选项按钮与我专栏中的右上角对齐。

如何在 Flutter 中对齐单个小部件?

这是我的代码。

return Card(
      color: Colors.blueAccent,
      child: Container(
        height: 100,
        width: 350,
        child: Column(
          children: <Widget>[
            Text(
              'Day ${widget._dayNumber}',
              style: TextStyle(
                color: Colors.white,
              ),
            ),
            Align(alignment: Alignment.topRight,
             child: IconButton(onPressed: () {}, icon: Icon(Icons.more_vert),)),

          ],
        ),
      ),
    );
Run Code Online (Sandbox Code Playgroud)

先输入文字,再对齐

如果我更改对齐和文本的顺序,就会发生这种情况。

先对齐,然后文本

我想在右上角显示我的按钮,同时将 Text 小部件保持在中心顶部,但 align 小部件似乎占据整行(行)。

有没有办法正确实现这一目标,或者我是否需要将它们排成一行?

flutter flutter-layout

4
推荐指数
2
解决办法
1万
查看次数

dartlang 中的 double.toStringAsFixed 和 toStringAsPrecision 有什么区别?

我想知道这两种方法有什么区别。我认为toStringAsFixed修剪了数字,但从文档中的示例来看,两者都对数字进行了四舍五入。

这是相关问题:https : //github.com/dart-lang/sdk/issues/25947

dart

4
推荐指数
1
解决办法
2517
查看次数

如何解决 ListView.builder 底部溢出问题?

我遇到了与此处概述的相同问题。我已经尝试了所有提供的解决方案,但仍然收到错误消息“RenderFlex 被底部 x 像素溢出”。我在自定义ListView Builder下没有任何小部件。我真的很茫然。

Widget build(BuildContext context) {
return new Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  mainAxisSize: MainAxisSize.min,
  children: <Widget>[
    new GradientAppBar("Twitter"),
    new Container(
      child: Flexible(
        child: Column(
          children: <Widget>[
            Container(
              padding: const EdgeInsets.only(top: 10.0, left: 10.0),
              child: UserInfoHeader(userinfo)
            ),
            PagewiseListView(
              shrinkWrap: true,
              scrollDirection: Axis.vertical,
              physics: const AlwaysScrollableScrollPhysics(),
              pageSize: 200,
              itemBuilder: (context, TwitterCardContent entry, _) {
                return TwitterCard(entry);
              },
              pageFuture: (pageIndex) {
                return getStatuses(userinfo.screenName);
              },
            )
          ],
        ),
      ), 
    ),
  ],
);
Run Code Online (Sandbox Code Playgroud)

}

这是每个 List 项目的内容。

Widget build(BuildContext …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

3
推荐指数
3
解决办法
5342
查看次数

Flutter:Google Play服务已过时

W / GooglePlayServicesUtil(8660):Google Play服务已过期。需要13400000但找到了13280022

我正在尝试在Nexus S和Pixel Phone模拟器上的google_maps_plugin存储库中运行示例应用程序,它们均在Android Pie上运行。

有问题,而不是颤抖的一面。我未能应用他们的解决方案。

到目前为止我做了什么

1)我的模拟器中没有此选项 /sf/answers/3171894771/

2)这是在flutter标签上,但是解决方案是一个依赖项修复 /sf/answers/3778754871/

3)我不清楚如何在过时的Gradle Google Play服务中将Google Play服务降级。需要10298000但找到10084470

4)尝试使用模拟器从此链接下载播放服务,但是由于我没有playstore应用,因此无法将我的帐户与其关联,https://play.google.com/store/apps/details? id = com.google.android.gms

此Google帐户尚未与设备关联。请先在设备上访问Play商店应用,然后再安装应用。

android android-emulator google-play-services

3
推荐指数
2
解决办法
2539
查看次数

如何在 Flutter 应用程序上隐藏/删除标题栏?

如何删除颤动栏上的标题栏?

displayMap() {
    mapView.show(new MapOptions(
        mapViewType: MapViewType.normal,
        initialCameraPosition:
        new CameraPosition(new Location(11.052992, 106.681612), 3.0),
        showUserLocation: false,
        title: 'Google Map'));

         .....
  }
Run Code Online (Sandbox Code Playgroud)

我尝试添加Container(height: 0.0)和删除,title: 'Google Map'但它只删除了“谷歌地图”文本。

在此处输入图片说明

编辑:

我的 Scaffold

Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Demo App'),
      ),
      body: new Center(
        child: Container(
          child: RaisedButton(
            child: Text('Touch'),
            color: Colors.blue,
            textColor: Colors.white,
            elevation: 7.0,
            onPressed: displayMap,
          ),
        ),
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

flutter

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

如何在同一行中放置两个小部件?

我有一个国家代码(DropdownMenu)和电话(TextFormField),我如何将它们放在同一级别?我试过 Align 小部件。

Row(
                children: <Widget>[
                  Flexible(
                    flex: 1,
                    child: DropdownButtonFormField(
                      value: _selectedCountryCode ?? 'TR',
                      onChanged: (value) {
                        setState(() {
                          _selectedCountryCode = value;
                        });
                      },
                      items: countryCodes,
                    ),
                  ),
                  Flexible(
                    flex: 4,
                    child: Padding(
                      padding: const EdgeInsets.all(16.0),
                      child: TextFormField(
                        decoration: InputDecoration(labelText: "Phone"),
                      ),
                    ),
                  ),
                ],
              ),
Run Code Online (Sandbox Code Playgroud)

截屏

flutter

2
推荐指数
1
解决办法
1353
查看次数