2012-05-25 55 views
9

有很多方法可以让ListViews具有优雅的外观,但所有这些方法都需要模拟适配器或编写其他代码。随着Android 4.0的发布,不幸的事情不得不改变。谷歌抛光了他们的全息主题,并赋予它全新的外观。现在鼓励所有开发人员使用它,以使所有应用程序看起来都一样。Android ListView主题

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

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

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

  • 创建圆角列表,并确保选择背景不选择第一个/最后一个元素时破坏它
  • 创建圆角不是列表但部分由标题分隔,如下所示:enter image description here

解决方案应该会影响PreferenceActivity创建的ListView,而不需要任何额外的代码行。一切都应该包含在主题:

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

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

在此先感谢。

+1

可能想检查一下:http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index。 html –

+0

@JaredRummler此链接已损坏。 – Zety

+0

@WalR我*认为*这是同样的事情:http://romannurik.github.io/AndroidAssetStudio/ –

回答

1

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

其中之一就是为您的列表视图指定背景,而后者又是一个带有圆角或您指定的xml形状(带有圆角)的9贴图。这会让listview行选择符的副作用出现在你指定的背景上,因此会影响效果。尽管如此,这是相当直接的。

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