【问题标题】:Why do I need to specifically target the android.support.design library?为什么我需要专门针对 android.support.design 库?
【发布时间】:2015-06-05 22:40:39
【问题描述】:

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

【问题讨论】:

  • 亲爱的匿名投票者,您能解释一下为什么我的问题被否决了吗?我可以做些什么来改善我的问题?

标签: android android-design-library


【解决方案1】:

LayoutInflater,如果遇到看起来像裸类名的东西,将在该类的几个知名包中查找,例如android.widgetandroid.view。任何不在其中一个包中的View(例如android.support.v4.view.ViewPager)都必须有一个完全限定的类名作为LayoutInflater 的XML 元素名才能找到它。

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

【讨论】:

  • 啊,有道理。我的问题是,为什么像 paper-fab 这样的东西会移到 android 支持库而不只是添加到 android.widget 中?
  • @InfiniTech:它们向后兼容旧设备。谷歌可以将它们原生地添加到 Android M 中(并且仍然可能),并且在支持库中只有向后兼容的。但是,我感觉他们更倾向于将更多这些东西放入库中,因此所有 Android 版本都有一致的实现,因此它可以比 Android 设备更频繁地更新。跨度>
【解决方案2】:

不同版本的 Android 引入了新的设计理念和小部件。 Android 支持库的目标是将新功能引入旧的 android 版本。例如,在 Android 4.X 中,设计范式是 Holo,而在 Android 5.X 中,设计范式是 Material Design。所以在 Android 5.X 中添加了新的小部件,如 CardsView,因此谷歌发布了 Android 设计兼容性库的旧设备上可以使用这些小部件。在简历中,如果您支持旧版 android,则应始终使用支持库来保持与旧版 android 的兼容性。

【讨论】:

    【解决方案3】:

    来自docs

    Android 支持库包是一组代码库, 还提供向后兼容的 Android 框架 API 版本 作为仅通过库 API 可用的功能。每个 支持库向后兼容特定的 Android API 级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      相关资源
      最近更新 更多