ModalBottomSheetLayout 和 BottomSheetScaffold 在撰写中有何区别?

Mah*_*ghi 16 android kotlin android-jetpack-compose

简单的问题,ModalBottomSheetLayout 和 BottomSheetScaffold 在撰写方面有什么区别?如果他们都做同样的事情那么有什么区别?

Inl*_*ner 35

有几个区别。

  1. ModalBottomSheetLayout是一个模式窗口,不允许您与屏幕的其余部分进行交互。如果您触摸屏幕的变暗部分,它就会崩溃。BottomSheetScaffold允许您与屏幕的其余部分进行交互。BottomSheetScaffold允许您将 BottomSheet 始终保留在屏幕上。您甚至可以禁用手势并不允许用户关闭它。并且您可以添加 peekHeight 以使 BottomSheet 即使在折叠状态下也可见。
  2. ModalBottomSheetLayout在屏幕的其余部分上方创建一个阴影,但它保持状态栏不变(与 BottomSheetDialogFragment 不同,它使状态栏与屏幕的其余部分一起变暗)。BottomSheetScaffold不会使屏幕变暗。
  3. 正如人们已经说过的BottomSheetScaffold提供了 Slot API,它是一个容器。您可以添加 TopAppBar、DrawerContent、SheetContent、浮动操作按钮和 Snackbar。ModalBottomSheet仅包含 BottomSheet 内容和屏幕的其余部分。

所以这些组件有不同的用例。

ModalBottomSheetLayout是一种模式窗口,可用于询问用户需要立即注意的一次性操作

BottomSheetScaffold是一个容器,允许您创建一个 BottomSheet,使与内容的连续交互成为可能,例如您可以添加一个文本字段来输入消息或一个语音输入按钮

希望有人会发现我的定义有用:)