使用selector修改TextView中字体的颜色

2017-04-16 00:27:31

[html] view plain copy

  1.   



selector想必大家都用过了,但是在修改字体的颜色的时候还是要细心。

我们在TextView中设置字体颜色一般使用 

Android:textColor="@color/red"

但是我们在使用selector动态修改字体颜色的时候要使用

[html] view plain copy

  1. android:color="@color/red"  



我遇到这个问题的时候是在TabActivity中,每个Tab在选中的时候修改为蓝色。

tab_item.xml的代码如下:

[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

  3.     android:id="@+id/ll_software_tabwidget_item"  

  4.     android:layout_width="fill_parent"  

  5.     android:layout_height="fill_parent"  

  6.     android:gravity="center_horizontal"  

  7.     android:orientation="vertical" >  

  8.   

  9.    <ImageView  

  10.         android:id="@+id/iv_software_tabwidget_icon"  

  11.         android:layout_width="30dip"  

  12.         android:layout_height="30dip"  

  13.         android:layout_marginBottom="1dip"  

  14.         android:layout_marginTop="5dip"  

  15.         android:scaleType="fitXY" />  

  16.   

  17.     <TextView  

  18.         android:id="@+id/tv_software_tabwidget_text"  

  19.         android:layout_width="wrap_content"  

  20.         android:layout_height="wrap_content"  

  21.         android:layout_marginBottom="5dip"  

  22.         android:textColor="@drawable/software_textcolor"  

  23.         android:textSize="14dip" />  

  24.       

  25. </LinearLayout>  


注意android:textColor="@drawable/software_textcolor",即software_textcolor.xml就是selector,源码如下:


[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  

  3.   

  4.     <item android:state_selected="true" android:color="@color/software_textColor_selected"></item>  

  5.     <item android:state_selected="false" android:color="@color/software_textColor_unselected"></item>  

  6.   

  7. </selector>  


这个文件中就是要注意的地方了,必须使用android:color="@color/software_textColor_selected",不能使用android:textColor属性。


另附color.xml的源码如下:

[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <resources>  

  3.   

  4.     <color name="software_textColor_selected">#FF1C94EA</color>  

  5.     <color name="software_textColor_unselected">#FFDCE0DF</color>  

  6.       

  7. </resources>  



  • 2019-12-11 16:18:51

    npm发布vue组件

    开发之前先看看官网的 开发规范 我们开发的之后期望的结果是支持 import、require 或者直接使用 script 标签的形式引入,就像这样

  • 2019-12-11 16:21:00

    .vue文件 加scoped 样式不起作用

    在vue组件中,为了使样式私有化(模块化),不对全局造成污染,在style标签上添加scoped属性,以表示它只属于当下的模块。但是要慎用,因为在我们需要修改公共组件(第三方库或者项目中定制的组件)的样式的时候,scoped会造成很多困难,组要增加额外的复杂度。

  • 2019-12-11 16:22:04

    Vue中的scoped和scoped穿透,scoped原理

    在Vue文件中的style标签上有一个特殊的属性,scoped。当一个style标签拥有scoped属性时候,它的css样式只能用于当前的Vue组件,可以使组件的样式不相互污染。如果一个项目的所有style标签都加上了scoped属性,相当于实现了样式的模块化。

  • 2019-12-12 14:19:32

    laravel自定义分页LengthAwarePaginator

    有时候我们使用larave提供的后台分页数据库查询,有时候限制太多,我们需要自己定制分页功能。 下面是我给大家一个例子,我们可以根据例子,制作自己的分页功能。

  • 2019-12-14 21:04:05

    聊聊keep-alive组件的使用及其实现原理

    keep-alive是Vue.js的一个内置组件。它能够不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实DOM中,也不会出现在父组件链中。 它提供了include与exclude两个属性,允许组件有条件地进行缓存。

  • 2019-12-14 21:06:58

    vue----keep-alive缓存,activated,deactivated两个生命周期函数,,meta实现缓存

    如果没有缓存,每点击一次导航,内容区就会创建一个组件,该组件会经历整个生命周期,每点击一次,就会创建一个组件,比较浪费性能, 这时,我们就要考虑到是否能将点击过的已创建的组件进行缓存,当再次点击已访问过的组件时,这时,就会从缓存中获取该组件,而不会重新创建,