Compose:有没有类似Swiftui的EmptyView?

Bol*_*ose 9 android android-jetpack-compose

在 iOS 上,这里有 EmptyView https://developer.apple.com/documentation/swiftui/emptyview。但我不知道如何在 Compose 上实现它。如果我有它,某些代码对我来说会容易得多。例如,

myList.map { item ->
   if item is XItem -> EmptyView()
   ....
}
Run Code Online (Sandbox Code Playgroud)

不要告诉我我不需要它,我只是知道如何实现它。谢谢。

Phi*_*hov 6

Compose 的构建方式与 SwiftUI 有很大不同。

在 SwiftUI 中你需要EmptyView在两种情况下使用:

  1. 当您有遗传参数时,在某些情况下它应该为空 - 例如,您需要定义一些默认类型,以防未指定参数时。
  2. 当上下文要求您返回某些视图时。

另一方面,Compose 本来就不存在这样的问题,这就是为什么不存在这样的视图。

如果 SwiftUI 在空@ViewBuilder块周围出现错误,Compose 完全没问题。

在您的示例中,您可以使用Unit

myList.map { item ->
   if item is XItem -> Unit
   ....
}
Run Code Online (Sandbox Code Playgroud)

或者只是空大括号:

myList.map { item ->
   if item is XItem -> { }
   ....
}
Run Code Online (Sandbox Code Playgroud)

如果您确实需要一些空视图,则可以使用Box(Modifier)- 它将是一个大小为零的空视图。