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