我正在使用 kotlin 开发一个移动应用程序。我想使用图标来更改登录页面上密码的可见性。该应用程序正在使用material3,但我想要的图标在material2中。
我尝试更改我的 build.gradle.kts 依赖项以使用material2。
实现(libs.androidx.material3)-->实现(libs.androidx.material2)
但是,我发现弹出错误
未解决的版本目录引用 未解决的参考:material2
请勿降级至材料 2。
虽然可能,但您也不应该混合材质 2 和材质 3 可组合项。但是,如果您只想使用 Material 2 icons,则可以通过添加依赖项
androidx.compose.material:material-icons-extended
来实现(如果您使用 extended 变体,请确保您的发布版本使用 proguard 来删除不必要的代码,否则此依赖项将大大增加应用程序的大小)。然后你可以像这样访问Icons
,例如:
Icons.AutoMirrored.TwoTone.ArrowForward
Icons.Filled.VisibilityOff
使用 Material 3 可组合项
Icon
需要 imageVector
来绘制这样的图标:
Icon(
imageVector = Icons.Outlined.DirtyLens,
contentDescription = TODO(),
)
关于您尝试通过简单地将
3
中的 2
更改为 implementation(libs.androidx.material3)
来切换到材质 2 的做法是行不通的,因为您需要在版本目录中找到相应的条目。只需中键单击libs.androidx.material3
即可跳转到版本目录亲自查看。它的条目看起来像这样:
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
如果您在那里有材料 2 的条目(您很可能没有也不需要),它看起来像这样:
androidx-material = { group = "androidx.compose.material", name = "material" }
请注意,Material 2 依赖项不使用数字
2
。它们不能与材质 1 混淆,因为是没有材质 1 库。仅当开发了 Material 3 时,他们才在新库中添加了一个编号,以将其与没有编号的 Material 2 库区分开来。