hyljava

          CompoundButton

          Android 中文 API (29) —— CompoundButton


          前言

            本章內(nèi)容是android.widget.CompoundButton,翻譯來(lái)自德羅德,再次感謝德羅德 !期待你一起參與Android API 的中文翻譯,聯(lián)系我over140@gmail.com。 

           

            轉(zhuǎn)載

           

           正文

            一、結(jié)構(gòu)

              public abstract class CompoundButton extends Button implements Checkable

           

              java.lang.Object
                android.view.View
                  android.widget.TextView
                    android.widget.Button
                      android.widget.CompoundButton

           

            二、概述

              一個(gè)帶有選中/未選中狀態(tài)的按鈕。當(dāng)按鈕按下或點(diǎn)中時(shí)自動(dòng)改變狀態(tài)。

           

            三、公共方法

                   public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

                   在子視圖的構(gòu)建時(shí)分派一個(gè)輔助事件。(譯者注:通過(guò)源碼可以看出,視圖構(gòu)建時(shí)設(shè)置其選中狀態(tài)。)

                             參數(shù)

                                      event       事件

                             返回值

                                      如果事件全部完成返回True

           

                   public boolean isChecked ()

                   (譯者注:是否選中)

           

                   public void onRestoreInstanceState (Parcelable state)

                   允許視圖重新應(yīng)用以前通過(guò)onSaveInstanceState()生成代表內(nèi)部的狀態(tài)。這個(gè)函數(shù)決不調(diào)用一個(gè)空的狀態(tài)。

                             參數(shù)

                                      state       返回以前調(diào)用onSaveInstanceState()保存下來(lái)的狀態(tài)。

           

                   public Parcelable onSaveInstanceState ()

                   允許視圖生成一個(gè)代表內(nèi)部的狀態(tài),以后可用于創(chuàng)建一個(gè)與之相同的新的實(shí)例。這種狀態(tài)應(yīng)該只包含非持久或以后不能夠重建的信息。例如,你決不存儲(chǔ)你當(dāng)前在屏幕上的位置,因?yàn)檫@會(huì)在視圖的層面上重新計(jì)算放置一個(gè)新的實(shí)例。

                   你可以存儲(chǔ)到這里的一些例子:一個(gè)文本框中當(dāng)前光標(biāo)的位置(但通常不是文字本身,文字通常保存在內(nèi)容提供者(content provider)或其他持久的儲(chǔ)存中),一個(gè)列表視圖中的當(dāng)前選中項(xiàng)。

                             返回值

                                      返回一個(gè)包含視圖當(dāng)前狀態(tài)的Parcelable對(duì)象,或沒(méi)有什么狀態(tài)保存時(shí)返回null。默認(rèn)實(shí)現(xiàn)返回null

           

                   public boolean performClick ()

                   如果視圖定義了OnClickListener監(jiān)聽(tīng)器,調(diào)用此方法來(lái)執(zhí)行。

                             返回值

                                      定義了的OnClickListener被調(diào)用返回True,否則返回False

           

                   public void setButtonDrawable (Drawable d)

                   給按鈕背景設(shè)置一個(gè)可繪制對(duì)象(如:圖像)

                             參數(shù)

                                      d      用作背景的可繪制對(duì)象(如:圖像)

           

                   public void setButtonDrawable (int resid)

                   通過(guò)資源Id給按鈕背景設(shè)置一個(gè)圖像

                             參數(shù)

                                      resid        作為背景圖像的資源id

           

                   public void setChecked (boolean checked)

                   改變按鈕的選中狀態(tài)

                            參數(shù)

                                      checked true選中,false非選中

           

                   public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)

                   注冊(cè)一個(gè)在按鈕狀態(tài)發(fā)生改變時(shí)執(zhí)行的回調(diào)函數(shù)

                             參數(shù)

                                      listener  當(dāng)選中狀態(tài)改變時(shí)調(diào)用的函數(shù)

           

                   public void toggle ()

                   改變選中狀態(tài)為當(dāng)前狀態(tài)的逆狀態(tài)

           

            四、受保護(hù)方法

                   protected void drawableStateChanged ()

                   在視圖狀態(tài)的變化影響到所顯示可繪制的狀態(tài)時(shí)調(diào)用這個(gè)方法。

          確保在重載時(shí)中調(diào)用父類方法

           

                   protected int[] onCreateDrawableState (int extraSpace)

                   為當(dāng)前視圖生成新的可繪圖區(qū)狀態(tài)。這個(gè)方式當(dāng)緩存的圖像繪圖區(qū)狀態(tài)確定失效時(shí)通過(guò)視圖系統(tǒng)調(diào)用。你可以使用getDrawableState()方法重新取得當(dāng)前的狀態(tài)。

                             參數(shù)

                                      extraSpace      如果為非零,這是你應(yīng)該返回的數(shù)組在你可以存放你的狀態(tài)的額外條目的數(shù)量。

                             返回值

                                      返回一個(gè)記錄著視圖中當(dāng)前繪圖區(qū)狀態(tài)的數(shù)組

           

                   protected void onDraw (Canvas canvas)

                   實(shí)現(xiàn)你自己的繪制。

                             參數(shù)

                                      canvas    在畫(huà)布上繪制背景

           

                   protected boolean verifyDrawable (Drawable who)

                   如果你的視圖子類顯示他自己的可視化對(duì)象,他將要重寫(xiě)此方法并且為了顯示可繪制返回true。此操作允許進(jìn)行繪制時(shí)有動(dòng)畫(huà)效果。

            確認(rèn)當(dāng)重寫(xiě)從方法時(shí),需調(diào)用父類相應(yīng)方法。

                             參數(shù)

                                      who         需判斷的可繪制對(duì)象(Drawable)。如果是你要顯示的對(duì)象,返回True,否則返回調(diào)用父類的結(jié)果。

                             返回值

                                      boolean 如果可繪制對(duì)象(Drawable)已經(jīng)在視圖中顯示,返回True否則返回false。并且此處不允許使用動(dòng)畫(huà)。 

          posted on 2013-12-20 22:43 何云隆 閱讀(183) 評(píng)論(0)  編輯  收藏 所屬分類: Android

          主站蜘蛛池模板: 余干县| 防城港市| 永嘉县| 白水县| 梅州市| 衡阳县| 孟村| 富平县| 东乡县| 两当县| 报价| 屏南县| 北流市| 关岭| 铜川市| 曲松县| 越西县| 珠海市| 准格尔旗| 壶关县| 洛隆县| 即墨市| 冀州市| 绥江县| 汾阳市| 凯里市| 南城县| 漾濞| 和顺县| 宁阳县| 沁阳市| 武威市| 铜山县| 花垣县| 肃北| 宜良县| 鹿泉市| 综艺| 阿瓦提县| 巧家县| 新宁县|