android – Gingerbread设备不使用Theme.AppCompat(支持库)中的Holo样式

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

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

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

还有什么我需要做的事情,所以前Holo设备继承了全息风格的小部件吗?

提前致谢.

最佳答案
无论使用支持库,TextView,Spinner,CheckBox,Button,Switch等小部件都不会自动显示Holo样式.

支持库允许您使用的是使用一些非常重要的UI元素和API,这些元素和API在Honeycomb之前的Android版本中不可用(如ActionBar),但小部件的样式将与API级别的样式保持明显相同手机实际上正在运行.

你有几个选择:

1.)清除Android SDK安装的API> = 14个平台/子目录之一的资源,并复制/调整您想要自行更改的小部件的drawable和样式.然而,这是我根本不推荐的东西,因为如果你使用许多需要这种调整的不同小部件,这将是一项漫长而艰巨的任务.

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

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

希望这可以帮助!

转载注明原文:android – Gingerbread设备不使用Theme.AppCompat(支持库)中的Holo样式 - 代码日志