【问题标题】:Correct method of using Material theme in Lollipop and pre-Lollipop在 Lollipop 和 pre-Lollipop 中使用 Material 主题的正确方法
【发布时间】:2015-07-11 04:56:41
【问题描述】:

如果我们想为具有 Material design 的应用同时支持 Lollipop 和 pre-Lollipop 设备,以下哪种方法是正确的?

  1. 单独使用 Android 支持库:仅对整个应用程序使用支持库,不使用任何 API 21。我已经对此进行了测试,它可以在模拟器中运行。我可以在模拟器中获得棒棒糖设备中的材质特征。

  2. 在应用程序中同时使用 API 21 和 Android 支持库:提供替代样式、替代布局等...一种使用 API 21,另一种使用 Android 支持库,如 Android 的documentation 中所述。

我的困惑是,如果我选择选项 1,它是否适合 Lollipop 设备?这会降低内存效率吗?

否则,如果我使用选项 2,如果实际上不需要这样做,会不会是矫枉过正?

同样在第二个选项中,为了使用工具栏,我们可以在两个文件夹(layouts 和 layouts-v21)中使用替代布局,第一个文件夹中的布局使用android.support.v7.widget.Toolbar,第二个文件夹中的布局使用Toolbar。 但是要将其设置为ActionBar,Lollipop 拥有从Activity 类继承的活动就足够了。但是前棒棒糖需要从ActionBarActivity 继承。那么我们是否也需要有两个活动文件?

如果我脱口而出任何错误,请指出。

【问题讨论】:

  • 有关最新的材料设计集成,请访问 www.takeoffandroid.com

标签: android material-design


【解决方案1】:

某些功能仅在 v21 中可用,例如涟漪效果,因此,如果您想在应用中使用涟漪效果,则不要同时使用支持库作为支持库和 v21 支持棒棒糖。 对棒棒糖使用自定义 XML/Java,棒棒糖只需将您的动画/设计添加到 v21 文件夹中

【讨论】:

  • 只是为了确认,如果我不想要特定活动中支持库中不可用的任何功能,但需要 RecyclerView 或工具栏等某些功能,我是否必须只使用支持库?在使用 API 21 中的原始 Toolbar 或 RecyclerView API 时,Lollipop 设备的内存效率是否一样?
  • 你可以在像 KitKat 或更低版本的 pre lollipop 中同时使用 RecylerView 和 Toolbar,但是如果你想在 pre棒棒糖使用您自己创建的可绘制对象,但对于 v21 又名棒棒糖使用默认值
  • 强烈推荐使用支持库,考虑到将来您想使用一些仅在棒棒糖或最新版本奶昔中可用的功能,而不是您将要做的,再次编码以改变一切?如果您使用 Fragments,则建议使用支持库
  • 我认为我无法很好地向您传达我的确切疑问。这不是何时使用支持库和何时使用 API 21。我的情况是,在我的应用程序中,我只需要使用支持库中可用的那些小部件。我的项目还针对 Lollipop 和 pre-L 设备。 L 设备的更好方法是什么?要使用 API 21 小部件还是去支持库小部件?我知道支持库会起作用。 (如果我们完全使用支持库进行构建,我们将需要处理更少的代码。)但这是一个好方法吗?就内存和性能而言
猜你喜欢
  • 2014-08-27
  • 2015-08-26
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多