自定義獲取焦點的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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM