在我的移动应用程序中使用材料2和材料3

问题描述 投票:0回答:1

我正在使用 kotlin 开发一个移动应用程序。我想使用图标来更改登录页面上密码的可见性。该应用程序正在使用material3,但我想要的图标在material2中。

  1. 我应该降级我的材料吗?
  2. 是否可以同时使用材质2和材质3?

我尝试更改我的 build.gradle.kts 依赖项以使用material2。

实现(libs.androidx.material3)-->实现(libs.androidx.material2)

但是,我发现弹出错误

未解决的版本目录引用 未解决的参考:material2

android kotlin
1个回答
0
投票

请勿降级至材料 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 库区分开来。

© www.soinside.com 2019 - 2024. All rights reserved.