有很多方法可以设置 ListView 的样式以赋予它们优雅的外观,但所有这些都涉及修改适配器或编写额外的代码。
随着 Android 4.0 的发布,不幸的是,事情必须改变。谷歌完善了他们的 Holo 主题并赋予了它新的面貌。现在鼓励所有开发人员使用它,以使所有应用程序看起来都一样。
这就是问题所在。谷歌推出了 4.0,但仍有人使用旧版 Android。我们不能只保留我们以前的自定义应用程序主题并使用 Holo,因为它会破坏旧设备用户的视觉体验。而且我们不能强迫 4.0 用户只使用 Holo,因为老实说 - 它仍然不完美。
目标是使用内置主题系统并为 Holo 准备一些替代品,在所有设备上看起来都很棒。然后我们可以只用 setTheme() 在 Holo 和我们的主题之间切换,没有其他问题。不幸的是,事情并没有那么简单。我们受限于现有主题系统的能力,有些事情很难做到。我的问题来了。
考虑到我提到的所有内容,我们如何控制 ListView 的外观?我不知道如何:
- 创建带有圆角的列表,并确保选择器背景在选择第一个/最后一个元素时不会破坏它
- 不是为列表创建圆角,而是为由标题分隔的部分创建圆角,如下所示:
该解决方案应该影响由 PreferenceActivity 创建的 ListViews,而无需任何额外的代码行。一切都应该包含在主题中:
<theme name="SampleTheme" parent="android:Theme">
...
</theme>
我恳请不要发布不使用样式和主题的解决方案。它们可以在 Stack Overflow 上的另一个问题中轻松找到。
提前致谢。