2 pyxfighting PYXFighting 于 2016.03.25 15:44 提问

TextView设置selector修改背景色无效

<item android:drawable="@color/transparent" android:state_selected="false"></item>
<item android:drawable="@color/bg_item_list" android:state_selected="true"></item>

<TextView
    android:id="@+id/tv5"
    android:textColor="@color/white"
    android:text="本科"
    android:paddingLeft="25dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:clickable="true"
    android:background="@drawable/selector_education"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

选中状态无效,设置state_pressed点击属性有效 可是只想要选中的状态,而且不想用button,

10个回答

u011113654
u011113654   2016.03.25 16:01
已采纳

你这样直接写,是无效的,你应该,先将颜色抽出来,作为一个shape,然后在selector里面引用。
1.先创建shape drawable

(1)创建选中时的背景tv_selected_bg.xml

 <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <solid android:color="@color/bg_item_list" />
</shape>

(2)创建默认的背景 tv_normal_bg.xml

 <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <solid android:color="@color/transparent" />
</shape>

2.创建selector selector_education.xml

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ tv_normal_bg" android:state_selected="false"></item>
    <item android:drawable="@drawable/tv_selected_bg" android:state_selected="true"></item>
</selector>

最后再是引用,就是你的TextView的代码。

 android:background="@drawable/selector_education"
qq_27578023
qq_27578023   2016.06.18 18:40

你这样直接写,是无效的,你应该,先将颜色抽出来,作为一个shape,然后在selector里面引用。
1.先创建shape drawable

(1)创建选中时的背景tv_selected_bg.xml

<?xml version="1.0" encoding="UTF-8"?>
android:shape="rectangle">


(2)创建默认的背景 tv_normal_bg.xml

<?xml version="1.0" encoding="UTF-8"?>
android:shape="rectangle">


2.创建selector selector_education.xml

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




最后再是引用,就是你的TextView的代码。

android:background="@drawable/selector_education"

bdmh
bdmh   Ds   Rxr 2016.03.25 15:49
 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

上面写的是<selector 吗

danielinbiti
danielinbiti   Ds   Rxr 2016.03.25 15:51
 <item android:drawable="@color/transparent" android:state_selected="false"></item>
<item android:drawable="@color/bg_item_list" android:state_selected="true"></item>
<item android:drawable="@color/bg_item_list" android:state_focused="true"></item>
lxk_1993
lxk_1993   Rxr 2016.03.25 18:57

换成android:state_pressed 试试

crazy1235
crazy1235   Ds   Rxr 2016.03.26 13:07
shakdy
shakdy   2016.03.31 16:22

shakdy
shakdy   2016.03.31 16:22

shakdy
shakdy   2016.03.31 16:22
shakdy
shakdy   2016.03.31 16:22
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
TextView 添加Selector的背景和颜色不能正常运行
 TextView 添加Selector的背景和颜色不能正常运行,原因,textview未设置clickable         android:id="@+id/tv_edit"         android:layout_width="63dp"         android:layout_height="25dp"         android:layout_alig
android使用selector修改TextView中的字体颜色和背景颜色
android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化。这里我说一下TextView中的一些应用。        我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了。        TextView在
TextView的drawableLeft使用选择器不起作用的解决办法
TextView的drawableLeft使用选择器不起作用的解决办法我的方法是自定义textview。public class MyTextView extends TextView implements Checkable{ private boolean mChecked; private static final int[] CHECKED_STATE_SET = {
给TextView,RelativeLayout 设置selector不起作用的原因总结
1、由于TextView,RelativeLayout(LinearLayout) 默认不具备可点击性的,要让background的selector 起作用有两种方法:                     一、在代码中给其设置点击事件OnClickListener              二、在xml中设置clickable = true 2、selector写的不对,不点击时的默认
android中selector在java代码中使用无效的解决方案
最近在做项目,有些按钮图片需要设置不同的状态且对应不同的icon。在此过程中遇到了一些问题。 ~在用到TextView时,要设置它的文字颜色和drawableleft图片在不同的status下的情况,此时用到selector。 xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.
TextView selector不起作用
http://blog.csdn.net/nnmmbb/article/details/47777831 1、由于TextView,RelativeLayout(LinearLayout) 默认不具备可点击性的,要让background的selector 起作用有两种方法:              一、在代码中给其设置点击事件OnClickListener              二
Android 使用 selector 来改变TextView在不同状态下的textColor和background
最近在项目中需要实现一个功能:可以点击TextView,当TextView被点击的时候,背景变成了红色,字体颜色变成了白色,当不点击的时候,字体是灰色的,背景是白色的。为了能够实现这个功能,我想到了selector,于是,在drawable文件夹下面定义两个文件,分别用于TextView的textColor 和 background:       设置background :
Android drawable selector 设置无效
今天写代码时,需要设置一个TextView 的点击效果,press 状态和normal 状态两个icon,同时,点击区域背景在press状态下也不同。实现时将TextView 放在RelativeLayout 中 ,RelativeLayout 作点击区域,设置点击的背景效果,TextView 在点击时显示不同的icon图片。
android样式学习(一) 使用selector改变来动态改变背景颜色
1、现在res/drawable目录下见mystyle.xml文件,内容如下: http://schemas.android.com/apk/res/android">             android:drawable="@color/green" />             android:drawable="@color/qianhuise" />   2、
通过选择器selector给TextView,Button设置字体颜色和背景颜色
背景颜色通过结合shape实现<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true"> <shape> <solid an