flutter - Flutter 流列表过滤器
问题描述
我正在构建一个搜索特定蓝牙设备的应用程序。我正在使用 FlutterBlue,所以我的代码如下所示:
StreamBuilder<List<ScanResult>>(
stream: FlutterBlue.instance.scanResults
问题是我想根据某些标准过滤掉结果。 scanResults
is typeStream<List<ScanResult>>
并且正常List
我会这样做.where((element) => true/false)
,但是当我这样做时.where
,element
实际上是 typeList
而不是ScanResult
which 没有意义。
无法弄清楚我应该如何做到这一点。我四处寻找无济于事。我必须缺少维护 Stream 的设置,但能够基于.where
解决方案
要过滤列表,您需要直接过滤StreamBuilder
构建器中提供的快照数据。
这是一个小例子:
StreamBuilder<List<ScanResult>>(
stream: FlutterBlue.instance.scanResults,
builder: (_, snapshot) {
if (!snapshot.hasData) {
return LoadingWidget()
}
final filteredResult = snapshot.data!.where((element) => ...);
},
);
推荐阅读
- java - 放心 | 如何使用 JSONpath 获取基于匹配标准的字符串值
- html - 为什么你可以用 CSS 来设置一些 HTML 元素的样式,但不能用属性
- c++ - 使用 starttls 函数 ldap_start_tls_s (ldap_int_tls_start) 时在 openldap 库中报告崩溃
- grafana - Graphite 组时间戳事件(按周)
- apache-spark - 使用 spark(python) 创建 zip 文件
- swift - 如何在 Swift 中检查类型
- ios - 在 Google 地图上使用动画在多个位置之间移动标记
- android - OSX 上的锁定文件阻止了 android studio 上的 Gradle 同步,即使在删除文件后,这些文件也被反复锁定
- javascript - 如何在 Bokeh 中更新多选菜单
- java - 如何从正则表达式中提取值并打印它们并对这些值进行计算