繁体   English   中英

Jetpack compose 多屏幕中的底部表单

[英]Jetpack compose Bottom sheet in multi screens

在 Jetpack Compose 中为多个屏幕实现底页的最佳方法是什么? 我们是否必须在每个屏幕中定义 Bottom sheet 布局? 那么如果我们希望我们的底部工作表重叠在底部导航栏上怎么办?

您可以创建自定义布局,例如

MyAppCustomLayout(
  showBottomBar: Boolean = false, 
  state: ModalBottomSheetState = ModalBottomSheetState(initialValue = 
  ModalBottomSheetValue.Hidden),
  sheetContent: @Composable () -> Unit = {},
  content: @Composable () -> Unit)
{
  ModalBottomSheetLayout(
    sheetState = state,
    sheetContent = { sheetContent() })
  {
    Scaffold(
      bottomBar = if(showBottomBar)
      {{
        YourBottomNavigationView()
      }}
      else {{}})
    { content() }
  }
}

并在您的应用程序中的任何位置使用它,如下所示。

val state = rememberModalBottomSheetState()

MyAppCustomLayout(
  state = state,
  sheetcontent = { 
    Column {
      Text("Some bottomSheet content")
    }
  })
{ 
  Column {
    Text("Some content")
  }
}

如果您在项目中使用Jetpack Navigation Compose ,您可以考虑使用Jetpack Navigation Compose Material来实现它。

有关更多详细信息,请参阅示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM