我看到最近在Jetpack Compose上的Material3 Top App Bar Composables中添加了一个新参数:

fun CenterAlignedTopAppBar(
    ...
    scrollBehavior: TopAppBarScrollBehavior? = null
) {}

我从documentation中了解到,这应该使我们能够实现应用程序栏在滚动内容时隐藏的行为.然而,我没有实现这一点,因为我在StackOverflow上发现的唯一示例似乎不再适用于最新版本的Jetpack Compose,并且给出了错误No value passed for parameter 'state'.

有人能举个例子吗Scaffold,其中提供了topBarCenterAlignedTopAppBar,如果滚动Scaffold中的可滚动content,则它会在屏幕顶部向外滚动.

非常感谢你的帮助.

推荐答案

我终于设法让它工作了:

val topAppBarScrollState: TopAppBarScrollState = rememberTopAppBarScrollState()
val scrollBehavior = remember { TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarScrollState) }

CenterAlignedTopAppBar(
        modifier = modifier,
        title = { Text(text = stringResource(id = titleResource)) },
        actions = {
            IconButton(
                onClick = { }
            ) {
                Icon(
                    imageVector = Icons.Filled.Settings,
                    contentDescription = null,
                )
            }
        },
        scrollBehavior = scrollBehavior
    )

这似乎是必要的,因为 compose 版本1.2.0-rc02,但在旧版本上的解决方案在我的答案链接后仍然有效.

Android相关问答推荐

房间数据库迁移未正确处理:原因:java.lang. IllegalState异常:

如何将文本相对于喷气背包中的图标垂直居中?

Jetpack Compose make父级图像填充高度

广播接收者意图从服务内设置,而不被其他服务接收

无法列出目录中的文件'

Android可组合继承?

如何禁用Android 34+版的TileService,但保留以前的版本?

Android应用程序中的背景问题

如果我的圆形图像的顶部居中于卡片内部,我如何在其下方画一条弧线?

如何制作安卓';s FileProvider在Android 11上使用外部存储+

android回收器查看点击事件无响应

如何使用 Wea​​r OS 上的运行状况服务模拟位置?

Android Jetpack Compose 电视焦点恢复

为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

使用 Kotlin 在 Android 中导航时如何防止 ViewModel 被杀死?

如何在没有人窃取令牌的情况下使用我的移动应用程序中的 API

如何在 Jetpack Compose 中向图像视图添加对角色带?

PullRefreshIndicator 与 ScrollableTabRow 重叠

如何为具有不同屏幕尺寸但相同密度的手机创建响应式布局?

如何在 Compose 中更改高程 colored颜色 ?