專利名稱:滾動列表展現(xiàn)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,具體涉及一種滾動列表展現(xiàn)系統(tǒng)和方法。
背景技術(shù):
在現(xiàn)有終端平臺的應(yīng)用開發(fā)中,例如安卓(Android)平臺,通常需要展現(xiàn)大量的數(shù)據(jù)信息。此類數(shù)據(jù)信息例如聯(lián)系人信息,微博,和新聞文章等。現(xiàn)有技術(shù)中,展現(xiàn)數(shù)據(jù)信息的方法為通過滾動列表進(jìn)行展現(xiàn)。在滾動列表中數(shù)據(jù)信息按條展現(xiàn),當(dāng)某一時刻,滾動列表被滑動到某一個或某些條目時,獲取該待展現(xiàn)條目的位置信息,根據(jù)該位置信息調(diào)用條目對應(yīng)的數(shù)據(jù)信息進(jìn)行展現(xiàn)?,F(xiàn)有技術(shù)的展現(xiàn)數(shù)據(jù)信息的技術(shù)方案中存在下列問題。數(shù)據(jù)信息僅能以一條一條的方式進(jìn)行展現(xiàn),展現(xiàn)方式單一。并且僅能支持簡單數(shù)據(jù)信息類型,例如單一圖片類型或單 一文字類型,對于復(fù)雜數(shù)據(jù)信息類型,例如聯(lián)系人信息或微博等文字和圖片混排的數(shù)據(jù)信息類型,實現(xiàn)難度顯著增大,增加開發(fā)成本。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種滾動列表展現(xiàn)系統(tǒng)和相應(yīng)的滾動列表展現(xiàn)方法。依據(jù)本發(fā)明的一個方面,提供了一種滾動列表展現(xiàn)系統(tǒng),所述系統(tǒng)包括條目分組模塊,適于將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目;輸入接口,適于接收外部輸入的位置信息;數(shù)據(jù)獲取模塊,適于根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù);視圖調(diào)用模塊,適于調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)裝入對應(yīng)的子視圖中;視圖展現(xiàn)模塊,適于按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中子視圖,展現(xiàn)排列后的視圖容器;其中,所述視圖調(diào)用模塊進(jìn)一步適于將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素。可選地,所述輸入的位置信息為待展現(xiàn)的條目組的索引號,所述數(shù)據(jù)獲取模塊進(jìn)一步包括條目索引號確定子模塊,適于根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號;條目數(shù)據(jù)提取子模塊,適于根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)??蛇x地,所述條目分組模塊進(jìn)一步適于將滾動列表中條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù);
所述條目索引號確定子模塊進(jìn)一步適于由所述預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。可選地,所述視圖調(diào)用模塊進(jìn)一步適于創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器;或者,所述視圖調(diào)用模塊進(jìn)一步適于調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。根據(jù)本發(fā)明的另一方面,提供了一種滾動列表展現(xiàn)方法,所述方法包括將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目;根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng) 的數(shù)據(jù);調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素;按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中的子視圖,展現(xiàn)排列后的視圖容器。可選地,所述輸入的位置信息為待展現(xiàn)的條目組的索引號,所述獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)進(jìn)一步包括根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號;根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)??蛇x地,所述將滾動列表中的條目分組進(jìn)一步包括將滾動列表中的條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù);所述根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號進(jìn)一步包括由所述預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號??蛇x地,所述調(diào)用包含多個子視圖的視圖容器進(jìn)一步包括創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器;或者,調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。根據(jù)本發(fā)明的技術(shù)方案,通過將滾動列表中的條目分組,調(diào)用包含多個子視圖的視圖容器,將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)裝入對應(yīng)的子視圖中,按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中的子視圖,展現(xiàn)排列后的視圖容器,可以將滾動列表中的條目按多種版式展現(xiàn),并且使用視圖容器使得容易實現(xiàn)多種版式展現(xiàn),由此解決了展現(xiàn)方式單一,對于復(fù)雜數(shù)據(jù)信息類型,展現(xiàn)實現(xiàn)難度增大,并由此增加開發(fā)成本的問題,取得了將復(fù)雜數(shù)據(jù)信息類型進(jìn)行多樣化展現(xiàn),并且容易實現(xiàn),節(jié)約開發(fā)成本的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)系統(tǒng)的結(jié)構(gòu)圖;圖2示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)獲取模塊的結(jié)構(gòu)圖;圖3示出了根據(jù)本發(fā)明一個實施例的展現(xiàn)的滾動列表的示意圖;圖4示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)方法的流程圖;圖5示出了根據(jù)本發(fā)明一個實施例的獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)的流程圖;以及·圖6示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)方法的流程圖。
具體實施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參見圖1,示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)系統(tǒng)的結(jié)構(gòu)圖。本實施例中系統(tǒng)10包括條目分組模塊100、數(shù)據(jù)獲取模塊200、視圖調(diào)用模塊300、視圖展現(xiàn)模塊400和輸入接口 500。該系統(tǒng)10可以位于移動終端、計算機終端等終端設(shè)備。條目分組模塊100,適于將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目。舉例而言,條目分組模塊100可以將滾動列表中條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù)。例如,滾動列表中總共有700條數(shù)據(jù)信息,即條目為700條,預(yù)設(shè)的條目數(shù)η為10,則700/10=70,將條目按從前到后的順序分為70個條目組,每個條目組中為10個條目。 上述舉例中,各個條目組中的條目數(shù)量相同,也可以通過其他方式進(jìn)行分組。例如,通過配置分組數(shù)量列表的方式,在列表中配置各個條目組中條目的數(shù)量,按該分組數(shù)量列表將條目分組,由此分組后的各個條目組中的條目可以各不相同。輸入接口 500,適于接收外部輸入的位置信息。數(shù)據(jù)獲取模塊200,適于根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)。參見圖2,示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)獲取模塊200的結(jié)構(gòu)圖。其中,輸入的位置信息為待展現(xiàn)的條目組的索引號。數(shù)據(jù)獲取模塊200進(jìn)一步包括條目索引號確定子模塊210和條目數(shù)據(jù)提取子模塊220。條目索引號確定子模塊210,適于根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號。舉例而言,如果條目分組時,按預(yù)設(shè)的條目數(shù)η進(jìn)行分組,則各個條目組中條目數(shù)量相同。條目索引號確定子模塊210由預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。例如,預(yù)設(shè)的條目數(shù)η為10,待展現(xiàn)的條目組的索引號為10,則10 X 10=100,100為待展現(xiàn)的條目的索引范圍的起始索引號,100+10-1 = 109,109為待展現(xiàn)的條目的索引范圍的結(jié)束索引號。如果按分組數(shù)量列表進(jìn)行分組,則條目索引號確定子模塊210可以由分組數(shù)量列表和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。即將分組數(shù)量列表中待展現(xiàn)的條目組的索引號前的各個條目組中條目數(shù)量相加,得到待展現(xiàn)的條目的索引范圍的起始索引號,該起始索引號與本條目組中條目數(shù)量相加得到待展現(xiàn)的條目的索引范圍的結(jié)束索引號。條目數(shù)據(jù)提取子模塊220,適于根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。例如,通過安卓中滾動列表的適配類Adapter的接口 getViewO獲得條目對應(yīng)的數(shù)據(jù)。具體而言,調(diào)用 ListView 中接口 setAdapter (ListAdapteradapter),將 ListView 與適配類Adapter綁定,倉ll建待展現(xiàn)的滾動列表的Adapter。將條目組中條目的索引號輸入Adapter的接口 getViewO,獲得該條目對應(yīng)的數(shù)據(jù)信息。視圖調(diào)用模塊300,適于調(diào)用包含多個子視圖的視圖容器,該多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)裝入對應(yīng)的子視圖中。視圖調(diào)用模塊300可以通過多種方式調(diào)用視圖容器。例如,視圖調(diào)用模塊300創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器。又例如,視圖調(diào)用模塊300調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。此外,視圖調(diào)用模塊300在展現(xiàn)子視圖時,將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素。視圖展現(xiàn)模塊400,適于按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中子視圖,展現(xiàn)排列后的視圖容器。由上可見,本實施例中技術(shù)方案能夠?qū)L動列表中的條目按多種版式展現(xiàn),并且使用視圖容器使得容易實現(xiàn)多種版式展現(xiàn),由此解決了展現(xiàn)方式單一,對于復(fù)雜數(shù)據(jù)信息類型,展現(xiàn)實現(xiàn)難度增大,并由此增加開發(fā)成本的問題,取得了將復(fù)雜數(shù)據(jù)信息類型進(jìn)行多樣化展現(xiàn),并且容易實現(xiàn),節(jié)約開發(fā)成本的有益效果。參見圖3,示出了根據(jù)本發(fā)明一個實施例的展現(xiàn)的滾動列表的示意圖。在本實施例中,對條目組采用三種不同的版式進(jìn)行展現(xiàn)。本實施例中滾動條目中總共500個條目,每5個條目為一組。在本實施例中,基于安卓平臺中ListView和Adapter來展現(xiàn)數(shù)量較大的數(shù)據(jù)條目。調(diào)用 ListView 中接口 setAdapter(ListAdapter adapter),將 ListView 與適配類Adapter綁定,創(chuàng)建待展現(xiàn)的滾動列表的Adapter。自定義Adapter,實現(xiàn)針對條目組的Adapter 中接口 getCount O 和 getViewO。接口 getCountO的返回值不再為現(xiàn)有技術(shù)中的條目數(shù)量,而是待展現(xiàn)的滾動列表中的條目組數(shù)量。具體實現(xiàn)為,getCount O的返回值為條目總數(shù)/預(yù)設(shè)的條目數(shù)n,例如500/5=100。接口 getViewO的返回的條目視圖不再為一個條目的數(shù)據(jù)信息的視圖,而是某個位置上的條目組的視圖。getViewO所返回的視圖為包含多個子視圖的視圖容器,視圖容器中子視圖按待展現(xiàn)的條目組對應(yīng)版式排列。具體實現(xiàn)如下所述。
條目分組模塊100將滾動列表中的500個條目分組,分為100個條目組,每個條目組包括5個條目。輸入接口 500接收外部輸入的位置信息,該位置信息為請求的條目組的索引號index。數(shù)據(jù)獲取模塊200根據(jù)所請求的條目組的索引號index和預(yù)設(shè)的條目數(shù)計算出該條目組中條目索引號的范圍。例如index為10,則條目組中條目的索引號范圍的起始索引號為10X5=50,結(jié)束索引號為50+5-1=54,共5個條目,即5條數(shù)據(jù)信息。數(shù)據(jù)獲取模塊200根據(jù)請求的條目組中各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。視圖調(diào)用模塊300創(chuàng)建或重用顯示整個條目組中數(shù)據(jù)信息的視圖容器,該視圖容器中包含待顯示的條目組數(shù)據(jù)信息所對應(yīng)的所有子視圖。例如每組5條數(shù)據(jù)信息,則返回的視圖容器將包含5個子視圖,與條目組中5條數(shù)據(jù)信息一一對應(yīng)。將該組數(shù)據(jù)信息分別裝入到各自所對應(yīng)的子視圖中,每個子視圖內(nèi)部可根據(jù)數(shù)據(jù)信息的特性設(shè)定視圖元素的數(shù) 量和布局。視圖展現(xiàn)模塊400按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中子視圖,展現(xiàn)排列后的視圖容器。本實施例中條目信息的展示效果如圖3所示,待展現(xiàn)的條目組分別對應(yīng)3種不同的版式。第一組數(shù)據(jù)信息對應(yīng)的視圖容器采用第一套版式,第二組數(shù)據(jù)信息對應(yīng)的視圖容器采用第二套版式,第三組數(shù)據(jù)信息對應(yīng)的視圖容器采用第三套版式。之后,第四組數(shù)據(jù)信息對應(yīng)的視圖容器再次采用第一套版式,如此循環(huán),使得各組數(shù)據(jù)信息以不同版式展現(xiàn)。本實施例中,可以基于ListView和Adapter來展現(xiàn)數(shù)量較大的數(shù)據(jù)條目,即以ListView或者從ListView派生出的控件類作為視圖容器,配合使用重新實現(xiàn)的Adapter中接口 getCountO和getViewO來提供條目組的數(shù)量和視圖。其不同于現(xiàn)有技術(shù)中條目與數(shù)據(jù)信息一一對應(yīng)的展現(xiàn)方式,將數(shù)據(jù)信息按幾個一組分成若干組,每組數(shù)據(jù)信息與滾動列表中一個條目組相對應(yīng),此條目組與ListView中ListView Item對應(yīng)。在每一個條目組內(nèi)部,對各個條目對應(yīng)的數(shù)據(jù)信息的視圖進(jìn)行自定義排序,已達(dá)到不同于現(xiàn)有技術(shù)中視圖中數(shù)據(jù)信息僅能縱向排列的更加多樣的布局。并且,此實現(xiàn)方式可以基于已有接口實現(xiàn),實現(xiàn)簡單,節(jié)約了開發(fā)成本。參見圖4,示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)方法的流程圖。本實施例中方法包括如下步驟。步驟S410,將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目。舉例而言,步驟S410進(jìn)一步包括將滾動列表中條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù)。例如,滾動列表中總共有700條數(shù)據(jù)信息,即條目為700條,預(yù)設(shè)的條目數(shù)η為10,則700/10=70,將條目按從前到后的順序分為70個條目組,每個條目組中為10個條目。上述舉例中,各個條目組中的條目數(shù)量相同,也可以通過其他方式進(jìn)行分組。例如,通過配置分組數(shù)量列表的方式,在列表中配置各個條目組中條目的數(shù)量,按該分組數(shù)量列表將條目分組,由此分組后的各個條目組中的條目可以各不相同。步驟S420,根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)。進(jìn)一步地,輸入的位置信息為待展現(xiàn)的條目組的索引號。參見圖5,為本發(fā)明實施例中獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)的流程圖,其中進(jìn)一步包括如下步驟。步驟S4210,根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號。
步驟S4220,根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。舉例而言,如果條目分組時,按預(yù)設(shè)的條目數(shù)η進(jìn)行分組,則各個條目組中條目數(shù)量相同。步驟S4210進(jìn)一步包括由預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。例如,預(yù)設(shè)的條目數(shù)η為10,待展現(xiàn)的條目組的索引號為10,則IOX 10=100,100為待展現(xiàn)的條目的索引范圍的起始索引號,100+10-1 = 109,109為待展現(xiàn)的條目的索引范圍的結(jié)束索引號。 如果按分組數(shù)量列表進(jìn)行分組,則步驟S4210進(jìn)一步包括由分組數(shù)量列表和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。即將分組數(shù)量列表中待展現(xiàn)的條目組的索引號前的各個條目組中條目數(shù)量相加,得到待展現(xiàn)的條目的索引范圍的起始索引號,該起始索引號與本條目組中條目數(shù)量相加得到待展現(xiàn)的條目的索引范圍的結(jié)束索引號。舉例而言,所述步驟S4220中通過安卓中滾動列表的適配類Adapter獲得條目對應(yīng)的數(shù)據(jù)。具體而言,調(diào)用ListView中接口 setAdapter (ListAdapteradapter),將ListView與適配類Adapter綁定,創(chuàng)建待展現(xiàn)的滾動列表的Adapter。將條目組中條目的索引號輸入Adapter的接口 getViewO ,獲得該條目對應(yīng)的數(shù)據(jù)信息。步驟S430,調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)裝入對應(yīng)的子視圖中??梢酝ㄟ^多種方式調(diào)用視圖容器。例如,創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器。又例如,調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。此外,在展現(xiàn)子視圖時,將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素。步驟S440,按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中的子視圖,展現(xiàn)排列后的視圖容器。由上可見,本實施例中技術(shù)方案能夠?qū)L動列表中的條目按多種版式展現(xiàn),并且使用視圖容器使得容易實現(xiàn)多種版式展現(xiàn),由此解決了展現(xiàn)方式單一,對于復(fù)雜數(shù)據(jù)信息類型,展現(xiàn)實現(xiàn)難度增大,并由此增加開發(fā)成本的問題,取得了將復(fù)雜數(shù)據(jù)信息類型進(jìn)行多樣化展現(xiàn),并且容易實現(xiàn),節(jié)約開發(fā)成本的有益效果。參見圖6,示出了根據(jù)本發(fā)明一個實施例的滾動列表展現(xiàn)方法的流程圖。在本實施例中,對條目組采用三種不同的版式進(jìn)行展現(xiàn)。本實施例中滾動條目中總共500個條目,每5個條目為一組。在本實施例中,基于安卓平臺中ListView和Adapter來展現(xiàn)數(shù)量較大的數(shù)據(jù)條目。調(diào)用 ListView 中接口 setAdapter(ListAdapter adapter),將 ListView 與適配類Adapter綁定,創(chuàng)建待展現(xiàn)的滾動列表的Adapter。自定義Adapter,實現(xiàn)針對條目組的Adapter 中接口 getCountO 和 getViewO。接口 getCountO的返回值不再為現(xiàn)有技術(shù)中的條目數(shù)量,而是待展現(xiàn)的滾動列表中的條目組數(shù)量。具體實現(xiàn)為,getCount O的返回值為條目總數(shù)/預(yù)設(shè)的條目數(shù)n,例如500/5=100。接口 getViewO的返回的條目視圖不再為一個條目的數(shù)據(jù)信息的視圖,而是某個位置上的條目組的視圖。getViewO所返回的視圖為包含多個子視圖的視圖容器,視圖容器中子視圖按待展現(xiàn)的條目組對應(yīng)版式排列。具體實現(xiàn)如下所述。步驟S610,將滾動列表中的500個條目分組,分為100個條目組,每個條目組包括5個條目。步驟S620,根據(jù)所請求的條目組的索引號index計算出該條目組中條目索引號的范圍,根據(jù)請求的條目組中各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。例如index為10,則條目組中條目的索引號范圍的起始索引號為10 X 5=50,結(jié)束索引號為50+5-1=54,共5個條目,即5條數(shù)據(jù)信息。
步驟S630,創(chuàng)建或重用顯示整個條目組中數(shù)據(jù)信息的視圖容器,該視圖容器中包含待顯示的條目組數(shù)據(jù)信息所對應(yīng)的所有子視圖,將該條目組中各個條目的數(shù)據(jù)信息分別裝入到各自所對應(yīng)的子視圖中。例如每組5條數(shù)據(jù)信息,則返回的視圖容器將包含5個子視圖,與條目組中5條數(shù)據(jù)信息一一對應(yīng)。每個子視圖內(nèi)部可根據(jù)數(shù)據(jù)信息的特性設(shè)定視圖元素的數(shù)量和布局。步驟S640,按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中子視圖,展現(xiàn)排列后的視圖容器。本實施例中條目信息的展示如圖3所示,待展現(xiàn)的條目組分別對應(yīng)3種不同的版式。第一組數(shù)據(jù)信息對應(yīng)的視圖容器采用第一套版式,第二組數(shù)據(jù)信息對應(yīng)的視圖容器采用第二套版式,第三組數(shù)據(jù)信息對應(yīng)的視圖容器采用第三套版式。之后,第四組數(shù)據(jù)信息對應(yīng)的視圖容器再次采用第一套版式,如此循環(huán),使得各組數(shù)據(jù)信息以不同版式展現(xiàn)。本實施例中,可以基于ListView和Adapter來展現(xiàn)數(shù)量較大的數(shù)據(jù)條目,即以ListView或者從ListView派生出的控件類作為視圖容器,配合使用重新實現(xiàn)的Adapter中接口 getCountO和getViewO來提供條目組的數(shù)量和視圖。其不同于現(xiàn)有技術(shù)中條目與數(shù)據(jù)信息一一對應(yīng)的展現(xiàn)方式,將數(shù)據(jù)信息按幾個一組分成若干組,每組數(shù)據(jù)信息與滾動列表中一個條目組相對應(yīng),此條目組與ListView中ListView Item對應(yīng)。在每一個條目組內(nèi)部,對各個條目對應(yīng)的數(shù)據(jù)信息的視圖進(jìn)行自定義排序,已達(dá)到不同于現(xiàn)有技術(shù)中視圖中數(shù)據(jù)信息僅能縱向排列的更加多樣的布局。并且,此實現(xiàn)方式可以基于已有接口實現(xiàn),實現(xiàn)簡單,節(jié)約了開發(fā)成本。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例 中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種滾動列表展現(xiàn)系統(tǒng),所述系統(tǒng)包括條目分組模塊,適于將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目;輸入接口,適于接收外部輸入的位置信息;數(shù)據(jù)獲取模塊,適于根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù);視圖調(diào)用模塊,適于調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)裝入對應(yīng)的子視圖中;視圖展現(xiàn)模塊,適于按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中子視圖,展現(xiàn)排列后的視圖容器;其中,所述視圖調(diào)用模塊進(jìn)一步適于將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其中,所述輸入的位置信息為待展現(xiàn)的條目組的索引號,所述數(shù)據(jù)獲取模塊進(jìn)一步包括條目索引號確定子模塊,適于根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號;條目數(shù)據(jù)提取子模塊,適于根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求I或2所述的系統(tǒng),其中,所述條目分組模塊進(jìn)一步適于將滾動列表中條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù);所述條目索引號確定子模塊進(jìn)一步適于由所述預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。
4.根據(jù)權(quán)利要求I至3任一項所述的系統(tǒng),其中,所述視圖調(diào)用模塊進(jìn)一步適于創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器;或者,所述視圖調(diào)用模塊進(jìn)一步適于調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。
5.一種滾動列表展現(xiàn)方法,所述方法包括將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目;根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù);調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素;按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中的子視圖,展現(xiàn)排列后的視圖容器。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述輸入的位置信息為待展現(xiàn)的條目組的索引號,所述獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù)進(jìn)一步包括根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號; 根據(jù)各個條目的索引號提取各個條目對應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求5或6所述的方法,其中,所述將滾動列表中的條目分組進(jìn)一步包括將滾動列表中的條目按從前到后的順序分組,其中,每η個條目為一組,η為預(yù)設(shè)的條目數(shù);所述根據(jù)待展現(xiàn)的條目組的索引號確定該條目組中各個條目的索引號進(jìn)一步包括由所述預(yù)設(shè)的條目數(shù)和待展現(xiàn)的條目組的索引號計算出該條目組中各個條目的索引號。
8.根據(jù)權(quán)利要求5至7任一項所述的方法,其中,所述調(diào)用包含多個子視圖的視圖容器進(jìn)一步包括創(chuàng)建包含多個子視圖的視圖容器,調(diào)用創(chuàng)建的視圖容器;或者,調(diào)用已經(jīng)釋放的包含多個子視圖的視圖容器。
全文摘要
本發(fā)明公開了一種滾動列表展現(xiàn)系統(tǒng)和方法,所述方法包括將滾動列表中的條目分組,得到至少一個條目組,每個條目組包括多個條目;根據(jù)輸入的位置信息確定待展現(xiàn)的條目組,獲取待展現(xiàn)的條目組中各個條目對應(yīng)的數(shù)據(jù);調(diào)用包含多個子視圖的視圖容器,所述多個子視圖與待展現(xiàn)的條目組中條目一一對應(yīng),將待展現(xiàn)的條目組中各個條目的數(shù)據(jù)輸入對應(yīng)的子視圖,在子視圖中根據(jù)輸入的數(shù)據(jù)設(shè)置并排列所述條目的視圖元素;按待展現(xiàn)的條目組對應(yīng)版式排列視圖容器中的子視圖,展現(xiàn)排列后的視圖容器。本發(fā)明解決了展現(xiàn)方式單一,對于復(fù)雜數(shù)據(jù)信息類型,展現(xiàn)實現(xiàn)難度增大,并由此增加開發(fā)成本的問題。
文檔編號G06F9/44GK102929631SQ20121042997
公開日2013年2月13日 申請日期2012年10月31日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者范國峰, 康永根, 唐智慧 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司