安卓 ListView 主题

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

我希望您不要发布不使用样式和主题的解决方案。这些解决方案可以在Stack Overflow的其他问题中轻松找到。
提前感谢您。

1
你可能想要查看这个:http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html - Jared Rummler
@JaredRummler 这个链接已经失效了。 - Kenly
@WalR 我认为这是同一件事情:http://romannurik.github.io/AndroidAssetStudio/ - Jared Rummler
@JaredRummler 谢谢。 - Kenly
1个回答

1
我可以看到两种解决方法。
一种是为您的列表视图使用主题,指定背景,这将导致列表视图行选择器出现在您指定的背景上方,从而破坏效果。但是实现起来非常简单,可以使用带圆角的9 patch或您指定的xml形状(也带有圆角)作为背景。
第二个选项是始终向列表视图添加标题和页脚,它们具有顶部(和底部)带有圆角的选择器背景。如果您真的想要,还可以为这些指定样式。
抱歉最后一句话,但我必须说。请不要试图使您的应用程序看起来像iPhone应用程序 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接