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

Jetpack Compose使用CenterAlignedTopAppBar遇编译错误求助

解决Jetpack Compose中TopAppBar实验性API编译错误

你遇到的编译错误是因为CenterAlignedTopAppBar和Material 3版本的TopAppBar属于实验性API,Android Studio默认会拦截未声明许可的实验性API调用,因此抛出该异常。以下是两种解决方法:

方法一:显式允许使用实验性API

在使用这些组件的Composable函数或整个文件上添加@OptIn(ExperimentalMaterial3Api::class)注解,声明你愿意接受实验性API的变动风险。

函数级注解示例:

import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.Scaffold

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun WoofApp() {
    Scaffold(
        topBar = {
            CenterAlignedTopAppBar(title = { Text(text = "hi") })
        }
    ) { paddingValues ->
        LazyColumn(contentPadding = paddingValues) {
            items(dogs) {
                DogItem(
                    dog = it,
                    modifier = Modifier.padding(dimensionResource(id = R.dimen.padding_small))
                )
            }
        }
    }
}

文件级注解示例(整个文件生效):

@file:OptIn(ExperimentalMaterial3Api::class)

import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.Scaffold
// 其他必要导入...

@Composable
fun WoofApp() {
    // 代码与原示例一致
}

方法二:改用稳定的Material 2组件

如果你不想依赖实验性API,可以切换到Material 2的TopAppBar,该版本属于稳定API,无需额外注解。只需确保导入的是androidx.compose.material.TopAppBar:

import androidx.compose.material.TopAppBar
import androidx.compose.material.Scaffold

@Composable
fun WoofApp() {
    Scaffold(
        topBar = {
            TopAppBar(title = { Text(text = "hi") })
        }
    ) { paddingValues ->
        LazyColumn(contentPadding = paddingValues) {
            items(dogs) {
                DogItem(
                    dog = it,
                    modifier = Modifier.padding(dimensionResource(id = R.dimen.padding_small))
                )
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:43:11