【问题标题】:Correct Android tab appearance across platforms?跨平台的正确 Android 选项卡外观?
【发布时间】:2010-10-04 13:54:12
【问题描述】:

我正在编写一个需要在各种 Android 设备上运行的应用程序,每个设备都有自己的运营商特定主题。

不幸的是,存在一个问题,即每个设备的标签主题不兼容 --- 库存 Android 使用浅背景、深色前景作为所选标签,但 HTC Desire 使用深色背景、浅色前景,这意味着为一个设计的图标在另一个看起来是错误的。 (此外,HTC Desire 的主题有一个错误,他们忘记为选定的选项卡设置前景色,这意味着您实际得到的是深色背景、深色前景。系统应用程序似乎都是手动设置前景色,但我在几个用户应用程序中观察到了这一点。)

因此,为了使应用程序在所有设备上看起来都正确,我认为我有两个真正的选择:

  • 完全自定义我的标签主题,因此我们根本不依赖系统主题

  • 其他

我宁愿不做第一个,因为这就是为什么我们的应用程序与设备上的其他应用程序不匹配的原因。但除非有解决这个问题的聪明方法,否则我将不得不这样做。有什么建议么?我不可能是第一个遇到这种情况的人。例如,有什么方法可以让 Android 自动更改图标的颜色?

(此外,我仍在处理一个问题,即系统应用程序显示的选项卡与用户应用程序不同:一定有一些主题设置我还没有找到,但是在搜索了源代码之后没有迹象。感谢指针。)

【问题讨论】:

  • 标签图标应该是StateListDrawables,并带有不透明度设置以与标签背景融合——请参阅developer.android.com/guide/practices/ui_guidelines/…。在这些方面,Android 将“自动更改图标的颜色”。不过,我不知道这是否是您的想法。
  • 是的,我们已经这样做了 --- 但实际图像数据的颜色仍然是固定的。所以虽然我们可以通过图标的透明部分看到标签的背景颜色,但图标前景在不同的主题上保持不变。如果图标在选择时变暗,在未选择时变亮,如果主题期望在选择时变亮图标,它仍然无济于事。

标签: android themes tabs android-tabhost


【解决方案1】:

如果您想支持所有 Android 版本(1.5+),第一个选项是最简单的解决方案。

系统应用程序(例如通讯录应用程序)使用自定义选项卡。看看这里: https://android.googlesource.com/platform/packages/apps/Contacts (例如,在这些文件夹中搜索“tab_”:res/layout-finger、res/drawable-finger、res/drawable-hdpi-finger)

【讨论】:

  • 不幸的是,联系人应用程序的自定义选项卡内容似乎未完成且未使用 --- ContactsUtils.createTabIndicatorView() 未从任何地方调用!此外,浏览器应用程序的书签编辑器具有完全标准的标签代码,任何地方都没有自定义 UI,但它也以系统应用程序样式出现......
  • 嗯......你似乎是对的。顺便说一句,影响选项卡样式的另一件事是清单文件中的“android:targetSdkVersion”。例如,如果您将其设置为 7,您将获得不同于 6 的另一种样式。
  • 是的,我自己也发现了。非常...直观!至少这个谜得到了解释。 HTC Desire 系统应用程序似乎都没有使用标准选项卡,因此我无法比较它们的外观。 HTC Desire 上的标准 Froyo 风格指南几乎无法阅读......
猜你喜欢
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
相关资源
最近更新 更多