为什么我需要专门针对 android.support.design 库?

Why do I need to specifically target the android.support.design library?

我对 Android 开发还很陌生,所以我先道歉。我对新的 Android 支持库有点困惑。怎么我用<EditText>就好了,要用<TextInputLayout>就得用<android.support.design.widget.TextInputLayout>?谢谢!

来自docs

The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs. Each Support Library is backward-compatible to a specific Android API level.

LayoutInflater,如果它遇到看起来像裸 class 名称的东西,将在几个著名的软件包中查找 class,例如 android.widgetandroid.view。任何不在其中一个包中的 View - 例如 android.support.v4.view.ViewPager - 必须有一个完全限定的 class 名称作为 LayoutInflater 的 XML 元素名称找到它。

来自 Android 支持库的所有 public classes 都使用 android.support 作为它们包名称的基础,以帮助将它们与 classes 将在设备固件中。因此,Android 支持库中的所有内容在资源中使用时,都必须具有完全限定的 class 名称。

Android 从一个版本到另一个版本引入了新的设计概念和小部件。 Android 支持库的 objective 是为了将新功能引入旧的 android 版本。例如,在 Android 4.X 中,设计范例是 Holo,在 Android 5.X 中,设计范例是 Material Design。因此在 Android 5.X 中添加了新的小部件,例如 CardsView,以便此小部件可以在旧设备上使用 google 已经发布了 Android 设计兼容性库。在简历中,如果您支持旧的 android 版本,您应该始终使用支持库来保持与旧版本的 android.

的兼容性。