小编Dav*_*ees的帖子

枚举或映射Dart中具有索引和值的列表

在dart中,有任何等同于普通的东西:

enumerate(List) -> Iterator((index, value) => f)
or 
List.enumerate()  -> Iterator((index, value) => f)
or 
List.map() -> Iterator((index, value) => f)
Run Code Online (Sandbox Code Playgroud)

看来这是最简单的方法,但是似乎不存在此功能仍然很奇怪。

Iterable<int>.generate(list.length).forEach( (index) => {
  newList.add(list[index], index)
});
Run Code Online (Sandbox Code Playgroud)

编辑:

感谢@ hemanth-raj,我得以找到所需的解决方案。我将把它放在这里,供需要执行类似操作的任何人使用。

List<Widget> _buildWidgets(List<Object> list) {
    return list
        .asMap()
        .map((index, value) =>
            MapEntry(index, _buildWidget(index, value)))
        .values
        .toList();
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个同步生成器函数以返回一个可迭代

Iterable<MapEntry<int, T>> enumerate<T>(Iterable<T> items) sync* {
  int index = 0;
  for (T item in items) {
    yield MapEntry(index, item);
    index = index + 1;
  }
}

//and use it like this. …
Run Code Online (Sandbox Code Playgroud)

dart flutter

31
推荐指数
11
解决办法
2万
查看次数

隐藏状态栏iOS 11时,安全区域插入更改

在我们的应用程序中,我们暂时隐藏状态栏作为动画的一部分,在两个需要不同状态栏样式的屏幕之间进行转换.

我们有一个百分比驱动的动画过渡,在启动时,用动画隐藏状态栏,完成时显示状态栏.

在iOS 11上,安全区域插入包括可变的状态栏高度,当隐藏时,安全区域的顶部插入下降到0高度.这会重新调整我们的所有视图,并且在视图大小之间会出现可怕的跳跃.

我们仍然希望将我们的观点限制在安全区域,因为我们正在努力支持iPhone X.

隐藏状态栏时,我们可以暂时禁用对安全区域insets的更改吗?

ios

8
推荐指数
1
解决办法
4046
查看次数

在推送过渡期间响应导航栏高度变化

iOS的11搜索栏现在将改变导航栏高度56dp添加一个搜索栏的时候navigationItem.titleView

我喜欢高度变化,并不打算强迫高度保持在44dp或更低.

不幸的是,当从一个视图控制器转换到另一个视图控制器时,将使用较大的导航栏绘制推出的视图,然后在转换完成后更改条形高度.看起来有点像这样:

在此输入图像描述 在此输入图像描述

我需要一种方法让导航控制器识别过渡期间的高度变化,以便它可以设置较小的动画并正确绘制视图.

我有一个我不喜欢的当前修复,因为它有点跳跃,这是应用程序必须做的更多工作,并且它必须重新评估它的视图,无论它被推出哪个视图控制器.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    if #available(iOS 11, *) {
        navigationController?.view.layoutSubviews()
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有发现任何关于堆栈溢出的类似问题,来自WWDC的任何评论以及官方苹果文档中的任何内容.我见过很多应用程序处理这个问题.苹果联系人应用程序将创建看起来像两个导航栏,并将在它们之间移动而不动画高度变化和fb messenger应用程序将完美地在高度之间转换,甚至允许交互式弹出过渡.

uinavigationbar uinavigationcontroller ios swift

8
推荐指数
1
解决办法
531
查看次数