【问题标题】:Android: Can I use Design Support Library instead of AppCompat for Material Design UI?Android:我可以在 Material Design UI 中使用设计支持库而不是 AppCompat 吗?
【发布时间】:2017-07-20 10:18:55
【问题描述】:

我想我可能误解了在线文档,但有很多关于使用 Android 设计支持库为 Android 应用程序实现 Material Design 的内容。

我有一个最小 SDK 为 14 的应用,我可以将其增加到 16。我不使用 Coordinator Layout 或任何东西,但对 Material Design Theme 和 Snackbar 有以下依赖项。

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

我想知道是否可以删除对 AppCompat 的依赖,而只使用设计支持库来实现 Material Design 主题,但我无法找到如何获得它。还是我理解错了?

【问题讨论】:

  • 你遇到了什么错误?
  • 我认为您不必删除该依赖项。无论如何,任何 unsed 代码都会被 proguard 删除(如果您启用了它)。所以在我看来,以这种方式删除它是不值得的。

标签: android material-design android-appcompat androiddesignsupport


【解决方案1】:

你可以省略 appcompat 依赖,因为 design 对它有依赖。验证您是否可以使用 gradle 依赖树。这里是它的样子。我正在使用com.android.support:design:24.2.1

+--- com.android.support:design:24.2.1
|    +--- com.android.support:support-v4:24.2.1
|    |    +--- com.android.support:support-compat:24.2.1
|    |    |    \--- com.android.support:support-annotations:24.2.1
|    |    +--- com.android.support:support-media-compat:24.2.1
|    |    |    \--- com.android.support:support-compat:24.2.1 (*)
|    |    +--- com.android.support:support-core-utils:24.2.1
|    |    |    \--- com.android.support:support-compat:24.2.1 (*)
|    |    +--- com.android.support:support-core-ui:24.2.1
|    |    |    \--- com.android.support:support-compat:24.2.1 (*)
|    |    \--- com.android.support:support-fragment:24.2.1
|    |         +--- com.android.support:support-compat:24.2.1 (*)
|    |         +--- com.android.support:support-media-compat:24.2.1 (*)
|    |         +--- com.android.support:support-core-ui:24.2.1 (*)
|    |         \--- com.android.support:support-core-utils:24.2.1 (*)
|    +--- com.android.support:appcompat-v7:24.2.1
|    |    +--- com.android.support:support-v4:24.2.1 (*)
|    |    +--- com.android.support:support-vector-drawable:24.2.1
|    |    |    \--- com.android.support:support-compat:24.2.1 (*)
|    |    \--- com.android.support:animated-vector-drawable:24.2.1
|    |         \--- com.android.support:support-vector-drawable:24.2.1 (*)
|    \--- com.android.support:recyclerview-v7:24.2.1
|         +--- com.android.support:support-annotations:24.2.1
|         +--- com.android.support:support-compat:24.2.1 (*)
|         \--- com.android.support:support-core-ui:24.2.1 (*)

自己使用

Gradle(右上角选项卡)-> 执行 Gradle 任务(gradle 符号)-> 确保您在 :app -> 运行 app:dependencies

所以com.android.support:design:25.3.1 将拥有com.android.support:appcompat-v7:25.3.1 作为依赖项。

【讨论】:

  • 我想您的回复间接回答了我的问题,即两者都无法做到,因为我需要 Snackbar 并且这取决于 Pre-sdk-22 的 AppCompat。它并没有让我很困扰,但是仅仅为 Material Design Theme 拥有一个完整的支持库似乎有点过头了。有什么选择吗?我可能没有 Snackbar 也可以。
  • @ShahidThaika 支持库总是一个好主意,因为它们通常是向后兼容的。您自己的解决方案可能会在下一次 sdk 更新时过时。
【解决方案2】:

最好使用AppCompat,因为它会适应旧版本 Android 中的所有内容。它还取决于您要使用的Views。如果是普通的ButtonEditText,则不需要AppCompat,因为所有Android版本都支持。

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 2015-10-04
    相关资源
    最近更新 更多