【问题标题】:Gingerbread devices not using Holo style from Theme.AppCompat (support library)姜饼设备不使用 Theme.AppCompat 中的 Holo 样式(支持库)
【发布时间】:2013-11-14 02:58:25
【问题描述】:

我正在使用 v4 和 v7 支持库将操作栏和导航抽屉集成到我的应用程序中,它支持 API 10+。

我已按照 developer site 上的指南分别使用 Theme.AppCompat 和 style/Widget.AppCompat.ActionBar 作为我的主题和操作栏样式的父级。

一切正常,除了我在 Gingerbread 设备上测试时,下拉/弹出菜单之类的东西有白色背景(手机皮肤),文本字段不使用全息风格背景(再次,使用手机皮肤)。

为了让 pre-Holo 设备继承 holo 样式的小部件,我需要做些什么吗?

提前致谢。

【问题讨论】:

  • 查看类似的帖子 在姜饼上使用 Holo 光主题/样式 - stackoverflow.com/questions/16669819/…
  • 我不想使用 Sherlock,因为它太臃肿了,我更喜欢支持库。谢谢你的建议

标签: android android-layout android-ui android-support-library android-2.3-gingerbread


【解决方案1】:

无论使用支持库,TextView、Spinner、CheckBox、Button、Switch 等小部件都不会自动显示 Holo 样式。

支持库让您可以使用一些非常重要的 UI 元素和 API,这些元素和 API 在 Honeycomb 之前的 Android 版本中不可用(例如 ActionBar),但小部件的样式将保持与手机实际运行的 API 级别。

你有几个选择:

1.) 从 API >= 14 个平台/您的 android SDK 安装的子目录之一中清除资源,并复制/调整您想要更改的小部件的可绘制对象和样式。但是,我完全不建议这样做,因为如果您使用许多需要这种调整的不同小部件,这将是一项漫长而艰巨的任务。

2.) 使用 Android Holo Colors,它是 Holo 兼容资源的在线生成器,可立即支持几乎所有小部件:http://android-holo-colors.com/ 只需选择您喜欢的颜色、您想要支持的 API 版本以及您想要适应 Holo 的小部件。 Holo Colors 将为您生成一个包含所有可绘制对象和样式定义的存档。您几乎可以立即将绘图复制到您的项目中,您可能必须将样式集成到现有的styles.xml中

3.) 有一个名为 HoloEverywhere (https://github.com/Prototik/HoloEverywhere) 的库,其中已经包含大多数适用于 Holo 的小部件,但您需要扩展它们的自定义活动类并直接引用它们适应的小部件类。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    相关资源
    最近更新 更多