安卓:我能否使用Design Support Library代替AppCompat实现Material Design界面?

3

我可能误解了在线文档,但有很多使用Android Design Support库实现Android应用程序材料设计的方法。

我的应用程序最低SDK为14,可以接受将其增加到16。我没有使用协调布局或其他内容,但是具有以下用于材料设计主题和Snackbar的依赖项。

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

我在想是否可以取消对AppCompat的依赖,只使用Design Support Library来实现Material Design主题,但是我找不到如何做到这一点。或者我的理解有误吗?

你遇到了什么错误? - Ajay S
我认为你不必删除那个依赖项。如果启用了Proguard,任何未使用的代码都将被删除。因此,在我看来,以这种方式删除它是不值得的。 - Archie G. Quiñones
2个回答

2

您可以省略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,并且这依赖于 AppCompat 用于预 SDK-22。 这并不使我非常困扰,但是似乎为了 Material Design Theme 而拥有整个支持库似乎有些过度了。有什么替代方法吗?我可能可以不使用 Snackbar。 - Shahid Thaika
@ShahidThaika 支持库通常是一个很好的选择,因为它们通常是向后兼容的。你自己的解决方案可能会在下一个 SDK 更新时过时。 - Murat Karagöz

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接