本發(fā)明涉及頁面處理技術(shù),更具體地,涉及一種tab標(biāo)簽動(dòng)態(tài)更新方法及裝置。
背景技術(shù):
在android的應(yīng)用程序開發(fā)中,經(jīng)常會(huì)用到tablayout,tablayout是android支持庫(kù)中的一種控件,用來幫助開發(fā)者實(shí)現(xiàn)標(biāo)簽的導(dǎo)航式布局。許多的android應(yīng)用主界面底部或者頂部有多個(gè)文本或者圖標(biāo)的欄目,這種樣式就是標(biāo)簽導(dǎo)航,由于tablayout是android官方推出的控件,所以擁有著比市場(chǎng)上第三方控件更好的兼容性。
但是目前tablayout設(shè)計(jì)僅是針對(duì)靜態(tài)的tab標(biāo)簽設(shè)計(jì)的,并不支持動(dòng)態(tài)加載tab標(biāo)簽。比如一個(gè)頁面有5個(gè)tab標(biāo)簽,這個(gè)是事先設(shè)計(jì)好的,但是在實(shí)際中,tab標(biāo)簽的數(shù)量是變化的,當(dāng)使用tablayout做動(dòng)態(tài)數(shù)據(jù)變化時(shí),tablayout無法顯示變化后的tab標(biāo)簽。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種tab標(biāo)簽動(dòng)態(tài)更新方法及裝置,克服了傳統(tǒng)的tablayout設(shè)計(jì)不支持動(dòng)態(tài)加載的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種tab標(biāo)簽動(dòng)態(tài)更新方法,包括:
s1,通過重寫標(biāo)簽導(dǎo)航控件tablayout中的方法,將頁面布局管理器viewpager中的適配器對(duì)象綁定到tablayout上;
s2,獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù),其中,所述動(dòng)態(tài)加載接口用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;
s3,根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
本發(fā)明的有益效果為:在tablayout上增加動(dòng)態(tài)加載接口,用來標(biāo)記tablayout需要?jiǎng)討B(tài)加載,當(dāng)檢測(cè)到viewpager中適配器對(duì)象實(shí)現(xiàn)這個(gè)接口時(shí),表明該tablayout需要?jiǎng)討B(tài)加載,然后根據(jù)適配器中的tab標(biāo)簽的數(shù)據(jù)來對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新,實(shí)現(xiàn)了在tablayout上的動(dòng)態(tài)加載功能。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以作如下改進(jìn)。
可選的,所述步驟s2還包括:
在tablayout中設(shè)置監(jiān)聽器,用來對(duì)viewpager的適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)變化進(jìn)行監(jiān)聽;
當(dāng)監(jiān)聽到適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化時(shí),獲取適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)。
可選的,所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)包括tab標(biāo)簽的數(shù)目和每一個(gè)tab標(biāo)簽的文本內(nèi)容。
可選的,所述步驟s3具體包括:
s31,獲取tablayout中tab標(biāo)簽的數(shù)目,判斷tablayout中tab標(biāo)簽的數(shù)目與viewpager的適配器對(duì)象中的tab標(biāo)簽的數(shù)目是否相等,若相等,執(zhí)行步驟s32;若不相等,執(zhí)行步驟s33;
s32,根據(jù)所述適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行更新;
s33,通過向tablayout中增加或刪除tab標(biāo)簽,使得tablayout中tab標(biāo)簽的數(shù)目與配適器對(duì)象中tab標(biāo)簽的數(shù)目相等,并根據(jù)適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新。
可選的,通過如下方式對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新:
根據(jù)viewpager的適配器對(duì)象中的tab標(biāo)簽的文本內(nèi)容,在tablayout中獲取對(duì)應(yīng)位置的tab標(biāo)簽相應(yīng)的tab對(duì)象,并獲取tab對(duì)象持有的控件;
將適配器對(duì)象中tab標(biāo)簽的文本內(nèi)容填充入所述控件,完成對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容的更新。
可選的,所述步驟s3之后還包括:
當(dāng)對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)完成更新后,按照默認(rèn)設(shè)置,對(duì)需要選中的tab標(biāo)簽恢復(fù)選中狀態(tài)。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種tab標(biāo)簽動(dòng)態(tài)更新裝置,包括:
綁定模塊,用于通過重寫tablayout中的方法,將viewpager中的適配器對(duì)象綁定到tablayout上;
獲取模塊,用于獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù),其中,所述動(dòng)態(tài)加載接口用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;
動(dòng)態(tài)更新模塊,用于根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
可選的,還包括監(jiān)聽器;
所述監(jiān)聽器,設(shè)置于tablayout中,用于對(duì)viewpager的適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)變化進(jìn)行監(jiān)聽;
所述獲取模塊還用于:
當(dāng)監(jiān)聽器監(jiān)聽到適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化時(shí),獲取適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)。
可選的,還包括判斷模塊和增加/刪除模塊;
判斷模塊,用于獲取并判斷tablayout中tab標(biāo)簽的數(shù)目與viewpager的適配器對(duì)象中的tab標(biāo)簽的數(shù)目是否相等,若相等,則調(diào)用所述動(dòng)態(tài)更新模塊;否則,調(diào)用增加/刪除模塊;
增加/刪除模塊,用于通過向tablayout中增加或刪除tab標(biāo)簽,使得tablayout中tab標(biāo)簽的數(shù)目與配適器對(duì)象中tab標(biāo)簽的數(shù)目相等,并調(diào)用所述動(dòng)態(tài)更新模塊;
所述動(dòng)態(tài)更新模塊,用于根據(jù)所述適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新。
可選的,所述獲取模塊還用于:
根據(jù)viewpager的適配器對(duì)象中的tab標(biāo)簽的文本內(nèi)容,在tablayout中獲取對(duì)應(yīng)位置的tab標(biāo)簽相應(yīng)的tab對(duì)象,并獲取tab對(duì)象持有的控件;
所述動(dòng)態(tài)更新模塊,用于對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新具體包括:
通過將適配器對(duì)象中tab標(biāo)簽的文本內(nèi)容填充入所述控件,完成對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容的動(dòng)態(tài)更新。
附圖說明
圖1為本發(fā)明一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新方法流程圖;
圖2為本發(fā)明另一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新裝置連接框圖;
圖3為本發(fā)明另一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新裝置整體連接框圖;
圖4為本發(fā)明另一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新裝置的測(cè)試設(shè)備的連接框圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
參見圖1,為本發(fā)明一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新方法,適用于瀏覽器中導(dǎo)航式標(biāo)簽的布局,能夠在android開發(fā)中實(shí)現(xiàn)在標(biāo)簽導(dǎo)航控件tablayout中對(duì)tab標(biāo)簽進(jìn)行動(dòng)態(tài)更新布局,tablayout控件能夠用來顯示tab標(biāo)簽的布局,是android應(yīng)用中使用最廣泛的布局組件之一。viewpager最基本的功能就是能夠?qū)崿F(xiàn)頁面的左右滑動(dòng)的功能,實(shí)現(xiàn)頁面的展示效果。tab標(biāo)簽動(dòng)態(tài)更新方法方法包括:s1,通過重寫標(biāo)簽導(dǎo)航控件tablayout中的方法,將頁面布局管理器viewpager中的適配器對(duì)象綁定到tablayout上;s2,獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù),其中,所述動(dòng)態(tài)加載接口用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;s3,根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
在andriod的應(yīng)用開發(fā)中,經(jīng)常會(huì)使用到tablayout,tablayout是android支持庫(kù)中的一種控件,主要用來幫助開發(fā)者實(shí)現(xiàn)標(biāo)簽的導(dǎo)航式布局?,F(xiàn)有的tablayout設(shè)計(jì)主要是針對(duì)靜態(tài)的tab標(biāo)簽設(shè)計(jì)的,不能夠支持動(dòng)態(tài)加載tab標(biāo)簽,對(duì)于tab標(biāo)簽變化的需要是無法滿足的,因此,本發(fā)明實(shí)施例用來解決tablayout對(duì)tab標(biāo)簽動(dòng)態(tài)加載的。
本實(shí)施例首先通過重寫原有的tablayout的setupwithviewpager方法,該方法的作用是將viewpager綁定到tablayout上。重寫這個(gè)方法接口,可以通過設(shè)置監(jiān)聽器監(jiān)聽viewpager中適配器adapter對(duì)象中的數(shù)據(jù)。本實(shí)施例為了實(shí)現(xiàn)tablayout上的動(dòng)態(tài)加載,在原有的tablayout上增加一個(gè)動(dòng)態(tài)加載接口,取名為tabadapter接口,使用該tabadapter接口來標(biāo)記tablayout需要?jiǎng)討B(tài)加載。通過調(diào)用的tablayout中原有的viewpager.getadapter()方法獲取當(dāng)前綁定的viewpager的適配器adapter對(duì)象,并通過使用adapterinstanceoftabadapter語句來判斷adapter對(duì)象是否實(shí)現(xiàn)tabadapter接口,若實(shí)現(xiàn),表明該adapter是需要?jiǎng)討B(tài)加載的。當(dāng)判斷出adapter需要?jiǎng)討B(tài)加載時(shí),獲取適配器adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù),根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新,實(shí)現(xiàn)tablayout中對(duì)tab標(biāo)簽動(dòng)態(tài)更新的功能。
在本發(fā)明的一個(gè)實(shí)施例中,所述步驟s2還包括:在tablayout中設(shè)置監(jiān)聽器,用來對(duì)viewpager的適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)變化進(jìn)行監(jiān)聽;當(dāng)監(jiān)聽到適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化時(shí),獲取適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)。
本實(shí)施例在tablayout的setupwithviewpager方法中設(shè)置一監(jiān)聽器,用來對(duì)viewpager的適配器adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù)變化進(jìn)行監(jiān)聽。在具體監(jiān)聽的過程中,可以使用adapter的registerdatasetobserver方法,該方法以一個(gè)datasetobserver的對(duì)象作為參數(shù),這個(gè)方法用來監(jiān)聽adapter中的數(shù)據(jù)變化,當(dāng)有數(shù)據(jù)變化時(shí)會(huì)調(diào)用datasetobserver對(duì)象中的回調(diào)方法,datasetobserver對(duì)象有一個(gè)方法是onchanged,當(dāng)數(shù)據(jù)變化時(shí)會(huì)調(diào)用onchanged。
當(dāng)監(jiān)聽到adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化時(shí),獲取adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù)。其中,適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)包括tab標(biāo)簽的數(shù)目和每一個(gè)tab標(biāo)簽的文本內(nèi)容。
在本發(fā)明的一個(gè)實(shí)施例中,所述步驟s3根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新具體包括:s31,獲取tablayout中tab標(biāo)簽的數(shù)目,判斷tablayout中tab標(biāo)簽的數(shù)目與viewpager的適配器對(duì)象中的tab標(biāo)簽的數(shù)目是否相等,若相等,執(zhí)行步驟s32;若不相等,執(zhí)行步驟s33;s32,根據(jù)所述適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行更新;s33,通過向tablayout中增加或刪除tab標(biāo)簽,使得tablayout中tab標(biāo)簽的數(shù)目與配適器對(duì)象中tab標(biāo)簽的數(shù)目相等,并根據(jù)適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行更新。
在tablayout動(dòng)態(tài)加載tab標(biāo)簽的過程中,需要比較tablayout中tab標(biāo)簽數(shù)目與adapter對(duì)象中的tab標(biāo)簽的數(shù)目是否相等,因?yàn)槿鬭dapter對(duì)象中的數(shù)據(jù)更新后,兩者中的tab標(biāo)簽的數(shù)目很可能是不同的,比如,最開始tablayout有3個(gè)tab標(biāo)簽,當(dāng)一次數(shù)據(jù)更新后,adapter對(duì)象中的tab標(biāo)簽的數(shù)量變成5個(gè),而tablayout中仍然只有3個(gè)tab標(biāo)簽,此時(shí)tablayout中需要添加到5條tab標(biāo)簽并刷新每一個(gè)tab標(biāo)簽的內(nèi)容,才能保持與adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù)一致。
adapter對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化,一種情況是tab標(biāo)簽的數(shù)目沒有變化,只是tab標(biāo)簽中的文本內(nèi)容發(fā)生了變化;第二種情況是tab標(biāo)簽的數(shù)目發(fā)生了變化,并且所有的tab標(biāo)簽中的文本內(nèi)容都發(fā)生了變化;第三種情況是tab標(biāo)簽的數(shù)目發(fā)生了變化,原來的tab標(biāo)簽中的文本內(nèi)容沒有變化,只是新增加tab標(biāo)簽的文本內(nèi)容發(fā)生了變化。
因此,首先需要知道adapter對(duì)象中的tab標(biāo)簽的數(shù)目是否發(fā)生變化,通過比較tablayout中tab標(biāo)簽的數(shù)量與adapter對(duì)象中tab標(biāo)簽的數(shù)目是否相等。其中,在tablayout中,使用gettabcount方法來獲取tablayout中tab標(biāo)簽的數(shù)目,調(diào)用getcount方法來獲取adapter對(duì)象中的tab標(biāo)簽的數(shù)目。然后比較兩者的大小,當(dāng)tablayout中tab標(biāo)簽的數(shù)目少于adapter對(duì)象中tab標(biāo)簽的數(shù)目時(shí),調(diào)用addtab方法增加tab標(biāo)簽,使得tablayout中tab標(biāo)簽的數(shù)目與adapter對(duì)象中tab標(biāo)簽的數(shù)目相等。當(dāng)tablayout中tab標(biāo)簽的數(shù)目多于adapter對(duì)象中tab標(biāo)簽的數(shù)目時(shí),調(diào)用removetab方法刪除多余的tab標(biāo)簽,使得tablayout中tab標(biāo)簽的數(shù)目與adapter對(duì)象中tab標(biāo)簽的數(shù)目相等。當(dāng)tablayout中tab標(biāo)簽的數(shù)目與adapter對(duì)象中tab標(biāo)簽的數(shù)目相等后,根據(jù)adapter對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新。
在本發(fā)明的一個(gè)實(shí)施例中,通過如下方式對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容進(jìn)行更新:根據(jù)viewpager的適配器對(duì)象中的tab標(biāo)簽的文本內(nèi)容,在tablayout中獲取對(duì)應(yīng)位置的tab標(biāo)簽相應(yīng)的tab對(duì)象,并獲取tab對(duì)象持有的控件;將適配器對(duì)象中tab標(biāo)簽的文本內(nèi)容填充入所述控件,完成對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容的更新。
具體的,當(dāng)二者數(shù)目相同后,再進(jìn)行tab標(biāo)簽的顯示更新操作,此時(shí)需要遍歷adapter的所有tab標(biāo)簽的文本內(nèi)容,然后調(diào)用tablayout的gettabat方法獲取對(duì)應(yīng)位置的tab對(duì)象,然后通過tab對(duì)象獲取其持有的控件,比如textview,并更新其文本顯示,通過調(diào)用tab的settext方法進(jìn)行更新文本顯示,通過adapter的getpagetitle獲取其需要顯示的文本內(nèi)容進(jìn)行設(shè)置進(jìn)去,至此,完成了tablayout中的tab標(biāo)簽的動(dòng)態(tài)更新過程。
在本發(fā)明的另一個(gè)實(shí)施例中,提供的tab標(biāo)簽動(dòng)態(tài)更新方法還包括:當(dāng)對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)完成更新后,按照默認(rèn)設(shè)置,對(duì)需要選中的tab標(biāo)簽恢復(fù)選中狀態(tài)。
在每一次tablayout動(dòng)態(tài)加載后,先前tab標(biāo)簽的選中狀態(tài)被刷新了,由選中狀態(tài)變?yōu)榱宋催x中狀態(tài)。在tablayout動(dòng)態(tài)加載完成后會(huì)導(dǎo)致tablayout找不到首頁tab的焦點(diǎn),從而導(dǎo)致所有的tab標(biāo)簽均處于未選中狀態(tài),因此需要恢復(fù)tab標(biāo)簽的選中狀態(tài)。通常按照默認(rèn)設(shè)置,對(duì)需要選中的tab標(biāo)簽恢復(fù)選中狀態(tài)。在通常情況下,默認(rèn)設(shè)置每次更新后選中首個(gè)tab標(biāo)簽,當(dāng)tab標(biāo)簽數(shù)據(jù)更新后,希望焦點(diǎn)選中狀態(tài)回歸到首個(gè)tab標(biāo)簽。在本實(shí)施例中,先通過gettabat(0)獲取第一個(gè)tab對(duì)象,然后調(diào)用其getcustomview方法獲取tab對(duì)象的視圖對(duì)象,然后調(diào)用視圖對(duì)象的setselected方法將其設(shè)置選中狀態(tài)。
參見圖2,為本發(fā)明另一個(gè)實(shí)施例的tab標(biāo)簽動(dòng)態(tài)更新裝置,包括綁定模塊21、獲取模塊22和動(dòng)態(tài)更新模塊23。
綁定模塊21,用于通過重寫tablayout中的方法,將viewpager中的適配器對(duì)象綁定到tablayout上。
獲取模塊22,用于獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù),其中,所述動(dòng)態(tài)加載接口用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載。
動(dòng)態(tài)更新模塊23,用于根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
參見圖3,本發(fā)明實(shí)施例提供的tab標(biāo)簽動(dòng)態(tài)更新裝置還包括監(jiān)聽器24、判斷模塊25、增加/刪除模塊26和恢復(fù)模塊27。
所述監(jiān)聽器24,設(shè)置于tablayout中,用于對(duì)viewpager的適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)變化進(jìn)行監(jiān)聽;
所述獲取模塊22還用于:當(dāng)監(jiān)聽器24監(jiān)聽到適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)發(fā)生變化時(shí),獲取適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)。其中,適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù)包括tab標(biāo)簽的個(gè)數(shù)和每一個(gè)tab標(biāo)簽的文本內(nèi)容。
判斷模塊25,用于獲取并判斷tablayout中tab標(biāo)簽的個(gè)數(shù)與viewpager的適配器對(duì)象中的tab標(biāo)簽的個(gè)數(shù)是否相等,若相等,則調(diào)用所述動(dòng)態(tài)更新模塊23;否則,調(diào)用增加/刪除模塊26。
增加/刪除模塊26,用于通過向tablayout中增加或刪除tab標(biāo)簽,使得tablayout中tab標(biāo)簽的個(gè)數(shù)與配適器對(duì)象中tab標(biāo)簽的個(gè)數(shù)相等,并調(diào)用所述動(dòng)態(tài)更新模塊23。
所述動(dòng)態(tài)更新模塊23,具體用于根據(jù)所述適配器對(duì)象中的每一個(gè)tab標(biāo)簽的文本內(nèi)容,對(duì)tablayout中對(duì)應(yīng)位置的tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新。
所述獲取模塊22還用于:
根據(jù)viewpager的適配器對(duì)象中的tab標(biāo)簽的文本內(nèi)容,在tablayout中獲取對(duì)應(yīng)位置的tab標(biāo)簽相應(yīng)的tab對(duì)象,并獲取tab對(duì)象持有的控件;
所述動(dòng)態(tài)更新模塊23,用于對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容進(jìn)行動(dòng)態(tài)更新具體包括:
通過將適配器對(duì)象中tab標(biāo)簽的文本內(nèi)容填充入所述控件,完成對(duì)tablayout中tab標(biāo)簽的文本內(nèi)容的動(dòng)態(tài)更新。
恢復(fù)模塊27,用于當(dāng)對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)完成更新后,按照默認(rèn)設(shè)置,對(duì)需要選中的tab標(biāo)簽恢復(fù)選中狀態(tài)。
基于上述圖2和圖3對(duì)應(yīng)實(shí)施例所提供的tab標(biāo)簽動(dòng)態(tài)更新裝置,本發(fā)明提供了還一種tab標(biāo)簽動(dòng)態(tài)更新裝置的測(cè)試設(shè)備。參見圖4,該tab標(biāo)簽動(dòng)態(tài)更新裝置的測(cè)試設(shè)備包括:處理器(processor)401、存儲(chǔ)器(memory)402、通信接口(communicationsinterface)403和總線404;
其中,處理器401、存儲(chǔ)器402及通信接口403分別通過總線404完成相互間的通信;
通信接口403用于該測(cè)試設(shè)備與tab標(biāo)簽動(dòng)態(tài)更新裝置的通信設(shè)備之間的信息傳輸;
處理器401用于調(diào)用存儲(chǔ)器402中的程序指令,以執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的tab標(biāo)簽動(dòng)態(tài)更新方法,例如包括:通過重寫tablayout中的方法,將viewpager中的適配器對(duì)象綁定到tablayout上;在tablayout上定義一動(dòng)態(tài)加載接口,用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù);根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
本發(fā)明公開一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括程序指令,當(dāng)程序指令被計(jì)算機(jī)執(zhí)行時(shí),計(jì)算機(jī)能夠執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的tab標(biāo)簽動(dòng)態(tài)更新方法,例如包括:通過重寫tablayout中的方法,將viewpager中的適配器對(duì)象綁定到tablayout上;在tablayout上定義一動(dòng)態(tài)加載接口,用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù);根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
本發(fā)明提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,該計(jì)算機(jī)指令使計(jì)算機(jī)執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的tab標(biāo)簽動(dòng)態(tài)更新方法,例如包括:通過重寫tablayout中的方法,將viewpager中的適配器對(duì)象綁定到tablayout上;在tablayout上定義一動(dòng)態(tài)加載接口,用來標(biāo)記該tablayout需要?jiǎng)討B(tài)加載;獲取tablayout當(dāng)前綁定的適配器對(duì)象,當(dāng)所述適配器對(duì)象實(shí)現(xiàn)了tablayout上的動(dòng)態(tài)加載接口時(shí),獲取所述適配器對(duì)象中的tab標(biāo)簽數(shù)據(jù);根據(jù)獲取的tab標(biāo)簽數(shù)據(jù),對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所描述的tab標(biāo)簽動(dòng)態(tài)更新裝置的測(cè)試設(shè)備等實(shí)施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分方法。
本發(fā)明提供的一種tab標(biāo)簽動(dòng)態(tài)更新方法及裝置,在tablayout上增加一動(dòng)態(tài)加載接口,用來標(biāo)記tablayout需要?jiǎng)討B(tài)加載,當(dāng)檢測(cè)到viewpager中適配器對(duì)象實(shí)現(xiàn)這個(gè)接口時(shí),表明該tablayout需要?jiǎng)討B(tài)加載,然后根據(jù)適配器中的tab標(biāo)簽的數(shù)據(jù)來對(duì)tablayout中的tab標(biāo)簽數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新,實(shí)現(xiàn)了在tablayout上的動(dòng)態(tài)加載功能。
最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。