TextView selector 在LinearLayout中获取焦点问题

通常需要修改textview被选中时文字颜色,总是没效果,有以下几种方式可以实现:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="#FF111111"/>
    <!-- pressed -->
    <item android:state_focused="true" android:color="#FF222222"/>
    <!-- focused -->
    <item android:state_selected="true" android:color="#FF333333"/>
    <!-- selected -->
    <item android:state_active="true" android:color="#FF444444"/>
    <!-- active -->
    <item android:state_checkable="true" android:color="#FF555555"/>
    <!-- checkable -->
    <item android:state_checked="true" android:color="#FF666666"/>
    <!-- checked -->
    <item android:state_enabled="true" android:color="#FF777777"/>
    <!-- enabled -->
    <item android:state_window_focused="true" android:color="#FF888888"/>
    <!-- window_focused -->

</selector>

在textview中,增加选择器: android:textColor="@drawable/text_wbcolor_selector"

1、可以增加点击事件,在后台设置,不管有没有点击事件:

   textview.setOnClickListener(null);

2、在父控件中添加android:clickable=“true” android:focusable=“true”,而在子控件中添加android:duplicateParentState=“true”子控件就能获得父控件的点击事件。

3、在后台代码中设置ColorStateList,通过这个类也可以实现。

4、通过点击事件自己切换颜色(有点麻烦)。

原文地址:https://www.cnblogs.com/lbangel/p/3870372.html