首页 > 代码库 > 如何在android中利用Theme设置application 的所有listview的style?~

如何在android中利用Theme设置application 的所有listview的style?~

今天看VLC的源代码,发现一个很神奇的东西

所有listview的点击效果背景色都是橘黄色

花了点时间找了一下看看怎么实现的。

首先,定义一个<selector>

like this:

<selector>

  <item android:state_pressed="true">      

    <shape android:shape="rectangle">

      <solid android:color="@color/orange">

    </shape>

  </item>

</selector>

当然,你也可以直接找一张橘黄色的图片,效果和上面是一样的

然后你可以建一个style,这个style可以包含你希望的listview的所有属性,这里只举例说明,所以只写了一个android:listselector

<style name="theme.list">

  <item name="android:listselector">@drawable/一张图片 or 上面那个selector对应的xml,放在drawable文件夹下即可~ </item>

</style>

 

把这个style放到大的theme定义中,like this:(红字表示继承,因为毕竟我们只修改了一个大的theme中的一部分)

<style name="Theme.APPLICATION" parent="Theme.sherlock.Light">

<item name="listviewStyle">@style/theme.list</item>

</style>

最后把这个theme放到你的activity的android:theme中,这样你的那个activity所有的listview(包括子fragment)都是这个style 了~

<Activtiy

android:theme="@style/Theme.APPLICATION"

>