• 自定义获取焦点的TextView


    自定义控件编写流程
    创建一个默认就能获取焦点的TextView
    1.创建一个类继承至TextView,FocusTextView
    2.重写其构造方法

         //使用在通过java代码创建控件
            public FocusTextView(Context context) {
                super(context);
            }
            
            //由系统调用(带属性+上下文环境构造方法)
            public FocusTextView(Context context, AttributeSet attrs) {
                super(context, attrs);
            }
    
            //由系统调用(带属性+上下文环境构造方法+布局文件中定义样式文件构造方法)
            public FocusTextView(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);
            }

    3.将原有TextView上的isFocus方法默认修改为,能够获取焦点

         //重写获取焦点的方法,由系统调用,调用的时候默认就能获取焦点
            @Override
            public boolean isFocused() {
                return true;
            }

    4.使用过程
    获取当前类的全路径名称,作为xml中的标签存在,其余属性的使用方式和TextView一致

    public class FocusTextView extends TextView {
        //使用在通过java代码创建控件
        public FocusTextView(Context context) {
            super(context);
        }
        
        //由系统调用(带属性+上下文环境构造方法)
        public FocusTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        //由系统调用(带属性+上下文环境构造方法+布局文件中定义样式文件构造方法)
        public FocusTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
        
        //重写获取焦点的方法,由系统调用,调用的时候默认就能获取焦点
        @Override
        public boolean isFocused() {
            return true;
        }
    }
    <!-- android:ellipsize="end"添加省略点的所在位置 -->
        <!-- 想让文字出现跑马灯效果,必须让其获取焦点 -->
        <!-- android:marqueeRepeatLimit="marquee_forever"一直滚动属性 -->
        <!-- 自定义控件达到滚动效果(其实就是重新原有的TextView,让其一直能够获取焦点即可) -->
        <!--
             <TextView 
            android:text="秋天秋天悄悄过去,留下小秘密,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
            android:textColor="#000"
            android:singleLine="true"
            android:padding="5dp"
            android:ellipsize="marquee"
            android:focusable="true"
            android:marqueeRepeatLimit="marquee_forever"
            android:focusableInTouchMode="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        -->
    
        <com.itheima.mobilesafe74.view.FocusTextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:padding="5dp"
            android:singleLine="true"
            android:text="秋天秋天悄悄过去,留下小秘密,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
            android:textColor="#000" >
        </com.itheima.mobilesafe74.view.FocusTextView>
  • 相关阅读:
    解决 git 同步时 Everything up-to-date
    vs2019 git Authentication failed for xxx
    vs2015发布项目到虚拟主机组策略阻止csc.exe程序问题
    vs2017 使用 reportviewer
    var,dynamic的用法
    水晶报表报无法在资源中找到报表,请重新创建项目 错误
    css隐藏元素的方法
    css-浮动与清除浮动的原理详解(清除浮动的原理你知道吗)
    正则并不适合严格查找子串
    浏览器加载、渲染过程总结
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6221419.html
Copyright © 2020-2023  润新知