Android ListView主题

有很多方法可以让ListViews风格给予优雅的外观,但所有这些都包括模拟适配器或编写额外的代码。

随着Android 4.0的发布,不幸的事情不得不改变。 谷歌抛光了他们的全息主题,并给了它新的面貌。 现在鼓励所有的开发者使用它,以使所有的应用程序看起来一样。

这是问题。 谷歌推出4.0,但仍然有人使用旧的Android版本。 我们不能离开我们以前的自定义应用程序主题并使用Holo,因为这会破坏老设备用户的视觉体验。 我们不能强迫4.0用户使用Holo,因为说实话 – 这还不够完美。

目标是使用内build的主题系统,并为Holo准备一些替代品,在所有设备上看起来都很棒。 然后,我们可以只用setTheme()在Holo和我们的主题之间切换,而不需要额外的问题。 不幸的是并不那么简单。 我们仅限于现有的主题系统的function,有些事情是很难做到的。 我的问题来了。

考虑到我所提到的一切,我们如何控制ListView的外观呢? 我无法弄清楚,如何:

  • 创build带圆angular的列表,并确保在select第一个/最后一个元素时select器背景不会毁掉它
  • 创build不是列表的圆angular,而是由标题分隔的部分,如下所示: 在这里输入图像说明

该解决scheme应该会影响PreferenceActivity创build的ListView,而不需要额外的代码行。 一切都应该包含在主题中:

<theme name="SampleTheme" parent="android:Theme"> ... </theme> 

我恳请不要发布不使用样式和主题的解决scheme。 他们可以很容易地发现在另一个问题,这里堆栈溢出。

提前致谢。

Solutions Collecting From Web of "Android ListView主题"

我可以看到两种方法来解决这个问题。

一个是简单地为您的列表视图使用一个主题,指定背景,这反过来是一个9圆angular补丁或指定的xml形状(圆angular以及)。 这会让listview行select符的副作用出现在你指定的背景之上,因此会影响效果。 虽然这是相当直接的。

第二个select是总是将页眉和页脚添加到您的列表视图,这些列表视图的背景是在顶部(和底部)具有圆angular的select器。 如果您真的想,也可以指定这些样式。 对不起,这最后的评论,但我不得不说。 请不要试图让你的应用程序看起来像一个iPhone应用程序:)