文章編號:11205時間:2024-09-30人氣:
RecyclerView是一種新的視圖組,目標(biāo)是為任何基于適配器的視圖提供相似的渲染方式。 它被作為ListView和GridView控件的繼承者,在最新的support-V7版本中提供支持。 在開發(fā)RecyclerView時充分考慮了擴(kuò)展性,因此用它可以創(chuàng)建想到的任何種類的的布局。 但在使用上也稍微有些不便。 這就是Android——要完成一件事情總不是那么容易。 如果使用RecyclerView,你需要了解以下三個元素包含了一種新型適配器。 它與現(xiàn)在使用的適配器類似,但也稍有不同,例如它需要使用ViewHolder。 使用時需要重寫兩個主要方法:一個用來展現(xiàn)視圖和它的持有者,而另一個用來把數(shù)據(jù)綁定到視圖上。 這么做的好處是,第一種方法只有當(dāng)我們真正需要創(chuàng)建一個新視圖時才被調(diào)用,不需要檢查它是否已經(jīng)被回收。 LayoutManager這個類決定視圖被放在畫面中哪個位置,但這只是它的眾多職責(zé)之一。 它可以管理滾動和循環(huán)利用。 LayoutManager只有一個叫做LinearLayoutManager的實現(xiàn)類,它有1500多行代碼。 但從這一點就可以看出它有多復(fù)雜。 管理器可以模擬列表視圖(包括橫向和縱向),但沒有頁眉和頁尾。 為LayoutManager編寫子類不太適合新手,我們需要依靠社區(qū)來發(fā)掘RecyclerView的全部潛力。 與這個例子一起,在短時間內(nèi)我會上傳一個GridView控件的實現(xiàn)。 我認(rèn)為這背后的關(guān)鍵是要仿照LinearLayoutManager的代碼創(chuàng)建一個BaseLayoutManager,并且基于此進(jìn)行擴(kuò)展。 或許support-v7的最終版本會提供更多、更好的實現(xiàn)。 ItemAnimatorItemAnimator會根據(jù)適配器上收到的通知動畫顯示視圖組的修改。 基本上,它會自動顯示添加和移除條目動畫。 這也不是一個簡單的類,但我們發(fā)現(xiàn)DefaultItemAnimator已經(jīng)可以運行得很好了。
AdapterView簡介AdapterView是一個抽象類,其子類包括GridView、Spinner等。 它們共同的特征是抽象類,因此實際應(yīng)用中我們主要用到的是GridView、Spinner等具體子類。 ListView簡介ListView是一種用于展示集合數(shù)據(jù)的視圖組件。 它將數(shù)據(jù)集合以列表形式展示在界面上,起到數(shù)據(jù)展示和交互的作用。 適配器是View和數(shù)據(jù)之間的橋梁,負(fù)責(zé)提供容器內(nèi)容,確保數(shù)據(jù)的動態(tài)顯示。 ListView的工作原理ListView等AdapterView作為容器,負(fù)責(zé)裝載數(shù)據(jù)并展示。 適配器提供容器內(nèi)容,使用Recycler組件實現(xiàn)高效的數(shù)據(jù)管理。 當(dāng)需要顯示數(shù)據(jù)時,ListView根據(jù)數(shù)據(jù)項向適配器獲取數(shù)據(jù),從而加載到界面上。 ListView的使用生成ListView的方式主要有兩種:直接創(chuàng)建ListView或讓Activity繼承ListActivity。 此外,AbsListView提供常用屬性和方法用于配置和操作ListView。 Adapter介紹Adapter是一個接口,提供了數(shù)據(jù)與View之間的交互方式。 常用適配器如ArrayAdapter、SimpleAdapter、BaseAdapter,分別具有不同功能和使用場景。 ArrayAdapterArrayAdapter簡單易用,用于將數(shù)組數(shù)據(jù)綁定到列表項,支持泛型操作。 SimpleAdapterSimpleAdapter功能更強(qiáng)大,允許自定義每個列表項的布局,提供更靈活的數(shù)據(jù)展示方式。 BaseAdapterBaseAdapter提供高度的自定義能力,適用于復(fù)雜的數(shù)據(jù)展示需求,可通過重寫方法實現(xiàn)高度定制。 RecyclerView介紹RecyclerView是Google推出的組件,用于替代ListView,提供更高的性能和更靈活的自定義能力。 其工作原理與ListView類似,但在效率和可定制性上有顯著提升。 RecyclerView使用實例使用RecyclerView的步驟包括定義布局、創(chuàng)建Adapter類、設(shè)置Adapter和綁定RecyclerView。 同時,可以使用ItemDecoration實現(xiàn)分割線等自定義效果。 總結(jié)本文全面解析了ListView、AdapterView、RecyclerView,詳細(xì)介紹了它們的特點、使用方法和相關(guān)組件。 后續(xù)將繼續(xù)分享更多Android開發(fā)知識。 歡迎關(guān)注Android開發(fā)筆記。
在 Android 開發(fā)中,創(chuàng)建適配器主要分為以下幾個步驟:
Android是一個不斷進(jìn)化的平臺,Android 5.0的v7版本支持包中引入了新的RecyclerView控件,正如官方文檔所言,RecyclerView是ListView的豪華增強(qiáng)版。 它主要包含以下幾處新的特性,如ViewHolder,ItemDecorator,LayoutManager,SmothScroller以及增加或刪除item時item動畫等。 官方推薦我們采用RecyclerView來取代ListView。 ViewHolderViewHolder是用來保存視圖引用的類,無論是ListView亦或是RecyclerView。 只不過在ListView中,ViewHolder需要自己來定義,且這只是一種推薦的使用方式,不使用當(dāng)然也可以,這不是必須的。 只不過不使用ViewHolder的話,ListView每次getView的時候都會調(diào)用findViewById(int),這將導(dǎo)致ListView性能展示遲緩。 而在RecyclerView中使用 則變成了必須,盡管實現(xiàn)起來稍顯復(fù)雜,但它卻解決了ListView面臨的上述不使用自定義ViewHolder時所面臨的問題。 被BaseAdapter使用,以將posiiton綁定到上面(可以通過API查看 #getPosition() 方法)。 LayoutManager我們知道ListView只能在垂直方向上滾動,Android API沒有提供ListView在水平方向上面滾動的支持。 或許有多種方式實現(xiàn)水平滑動,但是請想念我,ListView并不是設(shè)計來做這件事情的。 但是RecyclerView相較于ListView,在滾動上面的功能擴(kuò)展了許多。 它可以支持多種類型列表的展示要求,主要如下:LinearLayoutManager ,可以支持水平和豎直方向上滾動的列表。 StaggeredGridLayoutManager ,可以支持交叉網(wǎng)格風(fēng)格的列表,類似于瀑布流或者Pinterest。 GridLaoutManager ,支持網(wǎng)格展示,可以水平或者豎直滾動,如展示圖片的畫廊。 ItemAnimator列表動畫是一個全新的、擁有無限可能的維度。 起初的Android API中,刪除或添加item時,item是無法產(chǎn)生動畫效果的。 后面隨著Android的進(jìn)化,Google的Chat Hasse推薦使用 ViewPropertyAnimator 屬性動畫來實現(xiàn)上述需求。 相比較于ListView, 則被提供用于在RecyclerView添加、刪除或移動item時處理動畫效果。 同時,如果你比較懶,不想自定義ItemAnimator,你還可以使用 DefaultItemAnimator 。 AdapterListView的Adapter中,getView是最重要的方法,它將視圖跟position綁定起來,是所有神奇的事情發(fā)生的地方。 同時我們也能夠通過registerDataObserver在Adapter中注冊一個觀察者。 RecyclerView也有這個特性, 就是這個觀察者。 ListView有三個Adapter的默認(rèn)實現(xiàn),分別是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。 然而,RecyclerView的Adapter則擁有除了內(nèi)置的內(nèi)DB游標(biāo)和ArrayList的支持之外的所有功能。 的實現(xiàn)的,我們必須采取措施將數(shù)據(jù)提供給Adapter,正如BaseAdapter對ListView所做的那樣。
連接控件與數(shù)據(jù)源之間的橋梁,用來將數(shù)據(jù)綁定到控件上。
在Android界面開發(fā)過程中,經(jīng)常需要使用列表視圖控件(ListView)、縮略圖瀏覽器控件(Gallery)、網(wǎng)格控件 (GridView)、下拉列表(Spinner)等控件進(jìn)行數(shù)據(jù)的展示, 然而Activity中的數(shù)據(jù)(數(shù)組、鏈表、集合、數(shù)據(jù)庫等)是 無法直接傳遞給這類控件,要將數(shù)據(jù)在控件上進(jìn)行顯示,必須借助數(shù)據(jù)適配器(Adapter)來完成。
擴(kuò)展資料:
適配器的適配模式:
一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。
適配器模式主要應(yīng)用于,當(dāng)接口里定義的方法無法滿足客戶的需求,或者說接口里定義的方法的名稱或者方法界面與客戶需求有沖突的情況。
兩類模式:對象適配器模式 - 在這種適配器模式中,適配器容納一個它我包裹的類的實例。 在這種情況下,適配器調(diào)用被包裹對象的物理實體。 類適配器模式 - 這種適配器模式下,適配器繼承自已實現(xiàn)的類(一般多重繼承)。
適配器不具備數(shù)據(jù)速率轉(zhuǎn)換功能。
在計算機(jī)編程中,適配器包括:容器適配器、迭代器適配器、泛函適配器等。
內(nèi)容聲明:
1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請聯(lián)系我們進(jìn)行舉報處理!
4、本文地址:http://www.hudongshop.com/article/da8138eb73475e6828e6.html,復(fù)制請保留版權(quán)鏈接!
什么是HTML編輯器,HTML編輯器是一種軟件工具,允許您創(chuàng)建和編輯HTML代碼,HTML,超文本標(biāo)記語言,是用于創(chuàng)建網(wǎng)頁的語言,如果您想創(chuàng)建一個自己的網(wǎng)站,您需要使用HTML編輯器來編寫HTML代碼,選擇一個HTML編輯器有許多不同的HTML編輯器可供選擇,對于初學(xué)者來說,一些流行的選擇包括,AtomVisualStudioCode...。
本站公告 2024-09-29 23:33:38
簡介在Android布局中,布局權(quán)重是一種強(qiáng)大的工具,可用于控制子視圖在父視圖中的相對大小,它允許您根據(jù)需要指定每個子視圖占據(jù)可用空間的比例,從而創(chuàng)建靈活且響應(yīng)迅速的布局,布局權(quán)重并非孤立存在,它可以與其他布局參數(shù)結(jié)合使用,以實現(xiàn)更精細(xì)的布局控制,本文將深入探討如何將布局權(quán)重與其他布局參數(shù)結(jié)合使用,以創(chuàng)建自定義且功能強(qiáng)大的布局,與寬度...。
技術(shù)教程 2024-09-28 11:01:35
計算機(jī)用戶經(jīng)常會遇到窗口消失的情況,這可能是一個令人沮喪的問題,窗口消失的原因可能有多種,包括技術(shù)故障和操作失誤,...。
最新資訊 2024-09-28 07:58:24
Unity3D是一個強(qiáng)大的游戲開發(fā)引擎,可用于創(chuàng)建各種各樣的交互式體驗,其中一個特別令人興奮的應(yīng)用是創(chuàng)造栩栩如生的野生動物體驗,在文章中,我們將指導(dǎo)您使用Unity3D創(chuàng)建自己的沉浸式野生動物體驗,重點展示一群狂奔的蠻牛,我們將涵蓋從導(dǎo)入資產(chǎn)到編寫腳本和配置物理的一切內(nèi)容,1.導(dǎo)入資產(chǎn)我們需要導(dǎo)入我們場景中使用的資產(chǎn),對于這個演示,我...。
最新資訊 2024-09-26 08:41:04
System.Reflection是.NET框架中的一個功能強(qiáng)大的程序集,它允許您在運行時檢查、修改和創(chuàng)建類型,它在軟件開發(fā)中有著廣泛的應(yīng)用,從調(diào)試到動態(tài)創(chuàng)建類和對象,System.Reflection的基礎(chǔ)System.Reflection的核心是Type類,它表示.NET類型,使用Type類,您可以獲取有關(guān)類型及其成員,字段、屬性...。
互聯(lián)網(wǎng)資訊 2024-09-25 09:37:43
在設(shè)計和開發(fā)網(wǎng)站時,考慮用戶參與和轉(zhuǎn)換至關(guān)重要,目標(biāo)屬性是用來衡量用戶與網(wǎng)站互動以及實現(xiàn)預(yù)期目標(biāo),例如購買、注冊或訂閱,有效性的指標(biāo),以下是推動用戶交互和網(wǎng)站轉(zhuǎn)換的關(guān)鍵目標(biāo)屬性,1.參與度指標(biāo)參與度指標(biāo)衡量用戶在網(wǎng)站上的活動水平,這些指標(biāo)包括,跳出率,離開網(wǎng)站而未與任何其他頁面互動的訪問者百分比,平均停留時間,用戶在網(wǎng)站上花費的平均時...。
互聯(lián)網(wǎng)資訊 2024-09-14 20:44:06
歡迎來到織夢之家,這是一個為尋求網(wǎng)絡(luò)夢想的人們打造的平臺,我們致力于提供豐富的資源、專家建議和社區(qū)支持,幫助您開啟您的網(wǎng)絡(luò)冒險之旅,探索無限可能在織夢之家,您可以探索各種網(wǎng)絡(luò)相關(guān)主題,包括,網(wǎng)站設(shè)計和開發(fā)電子商務(wù)自媒體網(wǎng)絡(luò)營銷網(wǎng)絡(luò)安全無論您是網(wǎng)絡(luò)新手還是經(jīng)驗豐富的專業(yè)人士,我們都有適合您需求的內(nèi)容,專家建議我們與行業(yè)專家合作,為您提供...。
互聯(lián)網(wǎng)資訊 2024-09-09 21:48:11
企業(yè)級功能是指專為滿足大型組織的需求而設(shè)計的軟件和服務(wù),這些功能通常包括以下內(nèi)容,可擴(kuò)展性,企業(yè)級功能能夠隨組織的增長而輕松擴(kuò)展,安全性,企業(yè)級功能具有強(qiáng)大的安全功能,以保護(hù)組織的數(shù)據(jù)和資產(chǎn),可靠性,企業(yè)級功能具有高水平的可靠性,以確保組織能夠在不中斷的情況下運行,可管理性,企業(yè)級功能易于管理和維護(hù),從而降低組織的IT成本,集成,企業(yè)...。
本站公告 2024-09-08 01:52:24
在快速變化的技術(shù)世界中,不斷學(xué)習(xí)和探索新技術(shù)對職業(yè)發(fā)展至關(guān)重要,網(wǎng)絡(luò)編程領(lǐng)域也不例外,它不斷出現(xiàn)新技術(shù)和趨勢,為開發(fā)人員提供創(chuàng)造創(chuàng)新解決方案的機(jī)會,持續(xù)學(xué)習(xí)和探索網(wǎng)絡(luò)編程新技術(shù)的益處是多方面的,提升技能和競爭力,學(xué)習(xí)新技術(shù)可以幫助您提升技能,并保持對最新發(fā)展趨勢的了解,從而提高您的競爭力,擴(kuò)大職業(yè)選擇,了解新技術(shù)可以為您打開不同的職業(yè)...。
本站公告 2024-09-06 12:46:07
對于初學(xué)者來說,SQL,結(jié)構(gòu)化查詢語言,可能會讓人望而生畏,但是,通過本指南的逐步講解,你將掌握SQL基礎(chǔ)知識,并能夠自信地處理數(shù)據(jù),什么是SQL,SQL是一種計算機(jī)語言,專用于管理和查詢數(shù)據(jù)庫,數(shù)據(jù)庫簡介數(shù)據(jù)庫是一個有組織的電子數(shù)據(jù)集合,它存儲在計算機(jī)系統(tǒng)中,可以方便地訪問和更新,SQL語句SQL語句用于對數(shù)據(jù)庫執(zhí)行操作,例如,創(chuàng)建...。
技術(shù)教程 2024-09-06 11:24:21
安陽靈異事件是一個發(fā)生在中國河南省安陽市的一系列超自然事件,至今仍未得到充分解釋,事件始末1999年4月,安陽市一處建筑工地發(fā)生坍塌事故,導(dǎo)致數(shù)十人死亡,事故發(fā)生后,工人們開始報告一系列奇怪的事件,包括詭異的聲音、移動的物體和突然出現(xiàn)的鬼魂,證據(jù)該事件有以下證據(jù)支持,目擊者證詞,幾十名目擊者報告了他們看到的超自然現(xiàn)象,包括幽靈般的哭聲...。
互聯(lián)網(wǎng)資訊 2024-09-03 02:12:07
有人對編程感興趣嗎,下面我為你們推薦一些培訓(xùn)的機(jī)構(gòu),希望能幫助大家,1.優(yōu)就業(yè)培訓(xùn)中心,該機(jī)構(gòu)擁有一支經(jīng)驗豐富的師資團(tuán)隊,采用實戰(zhàn)項目驅(qū)動的教學(xué)模式,注重培養(yǎng)學(xué)員的實際操作能力,同時,該機(jī)構(gòu)還與多家企業(yè)合作,為學(xué)員提供實習(xí)和就業(yè)機(jī)會,2.千鋒教育,該機(jī)構(gòu)是國內(nèi)知名的IT培訓(xùn)機(jī)構(gòu)之一,擁有完善的教學(xué)體系和先進(jìn)的教學(xué)設(shè)備,該機(jī)構(gòu)的課程內(nèi)容...。
技術(shù)教程 2024-09-02 05:17:14