当前位置: 首页 > 知识库问答 >
问题:

Jetpack由支架和模板底板组成

邢昂然
2023-03-14

我正在尝试使用Compose设计一个布局,其中包括:

  1. 顶部应用栏
  2. 正文(内容)
  3. 底部应用栏
  4. 单击时表示菜单的底页(模式底页)

-------顶应用栏-------

-主要内容-

------底部压条-----

----模型底板---

Compose提供了3个组件:

  1. 脚手架
  2. 底板脚手架
  3. 模态底板布局

脚手架没有底板属性

BottomSheetScaffold没有BottomAppBar属性

ModalBottomSheetLayout仅包含内容和sheetContent

我应该组合这些组件中的哪一个,以什么**结构**实现我想要的?

Scaffold(
  topBar = { TopBar() },
  content = { innerPadding -> Body(innerPadding) },
  bottomAppbar = { BottomAppBar() }
)
ModalBottomSheetLayout(
  sheetState = rememberModalBottomSheetState(
    initialValue = ModalBottomSheetValue.Hidden
  ),
  sheetContent = { SheetContent() },
)
BottomSheetScaffold(
  scaffoldState = ...,
  sheetContent = { SheetContent() },
  content = { ScreenContent() },
)

共有1个答案

匡祖鹤
2023-03-14

您可以使用以下内容:

val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
ModalBottomSheetLayout(
    sheetState = bottomState,
    sheetContent = {
        //. sheetContent
    }
) {
    Scaffold(
        scaffoldState = scaffoldState,
        topBar = {
            TopAppBar(
                title = {
                    Text(text = "TopAppBar")
                }
            )
        },
        bottomBar = {
            BottomAppBar(modifier = Modifier) {
                IconButton(
                    onClick = {
                        coroutineScope.launch { bottomState.show() }  
                    }
                ) {
                    Icon(Icons.Filled.Menu, contentDescription = "Localized description")
                }
            }
        },

        content = { innerPadding ->
            //...main content
        }
    )
}
 类似资料:
  • 我使用< code>BottomSheetScaffold来设置一个带有< code>topBar和一些< code>sheetContent的视图。 当底部工作表完全展开时,它将与 (也称为操作栏或应用栏)重叠。有没有办法确保它不会重叠?

  • 我试图有一种方法来显示来自我应用程序中任何地方的BottomSheet,为此我使用和一个LiveData对象,该对象保存当前可组合函数,该函数被观察为状态: 我在我的应用程序中使用BottomSheet作为上下文菜单。例如,当我在我的应用程序中点击播放列表时,它会设置BottomSheet的内容并像这样显示: 一般来说,这有效,但是第一次扩展BottomSheet时,它会显示一瞬间,然后再次消失在

  • 我已经开始学习jetpack compose。我想在单击图标按钮时显示底部工作表。但是我得到了错误@Composable调用只能发生在@Composable函数的上下文中,我如何实现这个逻辑。 这是代码 但是我得到了错误@Composable调用只能发生在@Composable函数的上下文中,我如何实现这个逻辑

  • 对于Super Rentals,我们希望首先到达home页面,在上面显示租赁列表,然后可以跳转到about页面和contact页面。(下列测试在/opt/super-rentals目录下进行) about路由 生成about路由: $ ember generate route about installing route create app/routes/about.js create

  • 概述 主控板支架B是一种多用途支架,可用于Arduino、Meduino甚至树莓派。 主控板支架B比主控板支架A大,有更多的孔与电子板和机械部件连接。此外,支架上的两个最大孔将允许RJ25电缆穿过。 包括塑料铆钉3075、塑料铆钉4060和塑料铆钉4100。 用户可选择塑料铆钉3075与Arduino或Meduino连接底座支架,选择塑料铆钉4060与电池座连接底座支架,选择塑料铆钉4100与底板

  • 我正在尝试创建一个流畅的页面,正在由其他一些数据模板构建。 例如: 我有两个。 > =>StackPanel中的按钮和Textblock。如: =>StackPanel中的Textblock和Combobox。如: 在我将它们合并之后,这是第三个模板(类似于: 我会得到一些不流利的东西。可能都是一脉相承的, 或者是两条线,但它会在中间断裂,比如: 按钮文本1\n 文本2\n组合框。 我想要一些像这