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

Jetpack Compose报错:Unresolved reference: BottomNavigation 求助

问题原因
  • 你使用的是Material 3版本的Scaffold(从ExperimentalMaterial3Api注解可判断),但BottomNavigation是Material 2的专属组件。Material 3库已废弃该组件,替换为NavigationBar。
  • Android Studio Flamingo默认的Compose模板会引入Material 3依赖,因此项目中无法识别Material 2的BottomNavigation。
修复方案

提供两种可选方案:

方案一:改用Material 3的NavigationBar(推荐)

直接将BottomNavigation替换为Material 3的NavigationBar,同时适配参数命名变更:

class MainActivity : ComponentActivity() {
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
        BottomNavTheme {
            Scaffold(bottomBar = {
                // 替换为Material 3的NavigationBar
                NavigationBar(
                    containerColor = colorResource(id = R.color.teal_200),
                    contentColor = Color.Black
                ) {
                    // 此处添加NavigationBarItem实现底部导航项
                }
            }) {
                
            }
        }
    }
}

注意:Material 3中backgroundColor参数已更名为containerColor,符合Material Design 3的设计规范。

方案二:添加Material 2依赖(仅兼容旧代码时使用)

若必须保留BottomNavigation,需在模块级build.gradle中添加Material 2的Compose依赖:

dependencies {
    // 保留原有Material 3依赖,新增Material 2依赖
    implementation "androidx.compose.material:material:1.5.0"
    // 其他项目依赖...
}

然后在代码中明确导入Material 2的BottomNavigation:

import androidx.compose.material.BottomNavigation
API变更说明

Jetpack Compose的Material 3库为贴合Material Design 3设计语言,对组件和参数做了针对性调整:

  • BottomNavigation → NavigationBar
  • BottomNavigationItem → NavigationBarItem
  • 颜色参数如backgroundColor统一调整为containerColor,contentColor保留但作用更明确

内容的提问来源于stack exchange,提问作者a.hess

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:42:47