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、通过点击事件自己切换颜色(有点麻烦)。

时间: 2024-11-25 09:59:21

TextView selector 在LinearLayout中获取焦点问题的相关文章

Android的LinearLayout中 selector背景颜色

把linearLayout 当成按钮使用,我想通过时间触发动态的改变  linear layout 的背景颜色,通过不同的颜色展示不同的状态, 我想通过selector来实现,但是完全没有效果 我看了下其他的解决方法,都说需要添加点击属性时间,但是我的代码已经添加了 我的 LinearLayout  包含了2个小的 LinearLayout  ,没个小LinearLayout  又包含了9个TextView,这18个TextVIew把我的布局填充满了. 我的想法是,每个TextVIew被点击的时

Android中获取应用程序(包)的大小-----PackageManager的使用(二)

通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识. 本部分的内容是如何获取安装包得大小,包括缓存大小(cachesize).数据大小(datasize).应用程序大小(codesize). 本部分的知识点涉及到AIDL.Java反射机制.理解起来也不是很难. 关于安装包得大小信息封装在Packag

在iOS中获取UIView的所有层级结构 相关

在iOS中获取UIView的所有层级结构 应用场景 在实际 iOS 开发中,很多时候都需要知道某个 UI 控件中包含哪些子控件,并且分清楚它们的层级结构和自个的 frame 以及 bounds ,以便我们完成复杂的 UI 布局,下面的代码就能很方便的获取某个 UI 控件的所有的层级结构,我们可以用它计算,然后把结果写入到本地磁盘,导出成XML文件,这样我们就可以很直观的看出它内部的细节. /** * 返回传入veiw的所有层级结构 * * @param view 需要获取层级结构的view *

LinearLayout中的layout_weight属性详解

线性布局中的layout_weight顾名思义即为定义各个组件在整个界面中所占的权重.常用两种实现方法 1:最为简单的实现方法,当orientation为水平时垂直layout_height=''0dp",同理当orientation为垂直时,将layout_width设定为0dp,此时在一个直接父布局中layout_width中的数值越大这个组件占的界面就越大.示例代码如下: <LinearLayout xmlns:android="http://schemas.android

Android在onCreate中获取元件大小

大部分的安卓开发者都会遇到在onCreate方法中来获取元件的宽高来进行一些处理,但是遗憾的是得到的所有结果都是0,这是由于安卓的渲染模式决定的,在元件创建但未显示时无法获取元件的固定宽高,在这里分享一下在onCreate方法中获取元件宽高的几种方法: 方法一: /** * 测量方法 获取组件的尺寸大小 * */ int width = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int height = V

Android下在onCreate中获取控件的宽度和高度(通过回调)

有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasuredHeight().getTop().getLeft()等方法是无法获取到真实值的,只会得到0. 这是因为View组件布局要在onResume回调后完成. 下面提供实现方法: 第一种: onGlobalLayout回调会在布局完成时自动调用 img1.getViewTreeObserver().

android的EditText重新获取焦点问题

在android开发过程中关于EditText在setFocusable(false);后,当需要再次获得焦点输入时设置setFocusable(true);后还是无法获得焦点的问题: 解决办法: 对EditText设置后就可以了! et.setFocusable(true); et.setFocusableInTouchMode(true); et.requestFocus(); et.findFocus(); android的EditText重新获取焦点问题

github项目解析(八)--&gt;Activity启动过程中获取组件宽高的三种方式

转载请标明出处:一片枫叶的专栏 上一个github小项目中我们介绍了防止按钮重复点击的小框架,其实现的核心逻辑是重写OnClickListener的onClick方法,添加防止重复点击的逻辑,即为第二次点击与第一次点击的时间间隔添加阙值,若第二次点击的时间间隔与第一次点击的时间间隔小于阙值,则此次点击无效,再次基础上我们又封装了点击组件验证网络Listener,点击组件验证是否登录Listener等,具体可参考:github项目解析(七)–>防止按钮重复点击 本文中我将介绍一下android中A

在onCreate()中获取某个View的宽高

我们都知道,在Activity的onCreate()方法中调用View的getWidth()和getHeight()方法时,返回的值都是0,因为Activity调用setContentView方法只是创建了这个View,调用了这个View构造方法而已,其中的onMeasure()方法还没被调用,所以不能知道它的宽高.但是,View有一个公开的方法post(),允许我们通过参数Runnable,在子线程中获取View的宽和高. public class MainActivity extends A