You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose中获取ActionBarSize?

在Jetpack Compose中获取ActionBarSize的方法

方法一:通过系统主题属性解析(与XML中?android:attr/actionBarSize逻辑一致)

你可以结合LocalContext和TypedValue解析系统主题里的actionBarSize属性,再转换成Compose中的Dp单位:

import android.util.TypedValue
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp

@Composable
fun getActionBarSize(): Dp {
    val context = LocalContext.current
    return with(LocalDensity.current) {
        TypedValue().apply {
            context.theme.resolveAttribute(android.R.attr.actionBarSize, this, true)
        }.dimension.toDp()
    }
}

这个方法能精准获取当前主题下ActionBar的尺寸,和XML中获取的值完全匹配。

方法二:使用Material组件库的默认值(适用于Compose内置TopAppBar)

如果你使用Jetpack Compose的Material/Material3 TopAppBar,也可以直接用官方提供的默认高度常量:

  • Material 2:TopAppBarDefaults.TopAppBarHeight
  • Material 3:TopAppBarDefaults.smallTopAppBarHeight
    注意:这是组件的固定默认高度,若自定义了主题中的ActionBar尺寸,优先用方法一获取准确值。

内容的提问来源于stack exchange,提问作者Tarsila Costalonga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:15:18