第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FragmentPagerAdapter和FragmentStatePagerAdapter

FragmentPagerAdapter和FragmentStatePagerAdapter

qq_遁去的一_1 2019-07-06 12:43:17
FragmentPagerAdapter和FragmentStatePagerAdapter有什么區(qū)別?.之間的區(qū)別是什么?FragmentPagerAdapter和FragmentStatePagerAdapter?關(guān)于FragmentPagerAdapter谷歌的指南說:當(dāng)有幾個典型的靜態(tài)片段需要分頁時,這個版本的尋呼機(jī)最適合使用,例如一組制表符。用戶訪問的每個頁面的片段都將保存在內(nèi)存中,盡管當(dāng)其視圖層次結(jié)構(gòu)不可見時可能會被銷毀。這可能導(dǎo)致使用大量內(nèi)存,因?yàn)槠螌?shí)例可以保持任意數(shù)量的狀態(tài)。對于較大的頁面集,請考慮FragmentStatePagerAdapter.還有關(guān)于FragmentStatePagerAdapter:當(dāng)有大量頁面時,此版本的尋呼機(jī)更有用,更像是列表視圖。當(dāng)頁面對用戶不可見時,可能會銷毀其整個片段,只保留該片段的保存狀態(tài)。這使得尋呼機(jī)能夠保持與每個訪問頁面相關(guān)聯(lián)的內(nèi)存比FragmentPagerAdapter在頁面之間切換時,代價是潛在的更多開銷。所以我只有三個碎片。但它們都是單獨(dú)的模塊,具有大量的數(shù)據(jù)。Fragment1處理一些數(shù)據(jù)(用戶輸入這些數(shù)據(jù))并通過活動傳遞給Fragment2,這只是一個簡單的ListFragment. Fragment3也是ListFragment.所以我的問題是:我應(yīng)該使用哪個適配器?FragmentPagerAdapter或FragmentStatePagerAdapter?
查看完整描述

3 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊

就像醫(yī)生說的,這樣想吧。如果要像圖書閱讀器那樣執(zhí)行應(yīng)用程序,則不希望同時將所有片段加載到內(nèi)存中。你想裝載和摧毀Fragments正如用戶所讀的那樣。在這種情況下,您將使用FragmentStatePagerAdapter..如果您只是顯示不包含大量數(shù)據(jù)的3個“選項卡”(如Bitmaps),那么FragmentPagerAdapter可能很適合你。同時,要記住ViewPager默認(rèn)情況下,將3個片段加載到內(nèi)存中。第一Adapter你說過可能會毀了View層次結(jié)構(gòu),并在需要時重新加載它,第二個Adapter只保存Fragment并且完全銷毀它,如果用戶返回到該頁面,狀態(tài)將被檢索。


查看完整回答
反對 回復(fù) 2019-07-06
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊

  • FragmentPagerAdapter將整個片段存儲在內(nèi)存中,如果使用大量的片段,則會增加內(nèi)存開銷。ViewPager.

  • 相反,它的兄弟姐妹,FragmentStatePagerAdapter只存儲碎片的保存狀態(tài),并在所有碎片失去焦點(diǎn)時銷毀它們。

  • 因此FragmentStatePagerAdapter當(dāng)我們必須使用動態(tài)片段時,應(yīng)該使用它,比如帶有小部件的片段,因?yàn)樗鼈兊臄?shù)據(jù)可以存儲在savedInstanceState而且,即使有大量的片段,它也不會影響性能。

  • 相反,它的兄弟姐妹FragmentPagerAdapter應(yīng)該在我們需要將整個片段存儲在內(nèi)存中時使用。

  • 當(dāng)我說整個片段保存在內(nèi)存中時,意味著它的實(shí)例不會被銷毀,并且會造成內(nèi)存開銷。因此,建議使用FragmentPagerAdapter只有當(dāng)碎片數(shù)量較少時ViewPager.

  • 如果碎片是靜態(tài)的,那就更好了,因?yàn)樗鼈儾粫写罅康膶ο?,這些對象的實(shí)例將被存儲。

為了更詳細(xì),

FragmentStatePagerAdapter:

  • 帶著FragmentStatePagerAdapter,您不需要的片段就被銷毀了。一個事務(wù)被提交到從您的活動的片段中完全刪除該片段。FragmentManager.

  • FragmentStatePagerAdapter是因?yàn)樗鼤饶愕乃槠?/trans>Bundle從…savedInstanceState當(dāng)用戶向后導(dǎo)航時,將使用片段的狀態(tài)恢復(fù)新的片段。

FragmentPagerAdapter:

  • 通過比較FragmentPagerAdapter什么都不做,當(dāng)碎片不再需要的時候。FragmentPagerAdapter打電話detach(Fragment)關(guān)于事務(wù)而不是remove(Fragment).

  • 此破壞是碎片的視圖,但將碎片的實(shí)例保留在FragmentManager因此,在FragmentPagerAdapter永遠(yuǎn)不會被摧毀。


查看完整回答
反對 回復(fù) 2019-07-06
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊

在文檔或本頁的答復(fù)中沒有明確說明的是:FragmentPagerAdapter如果片段中的數(shù)據(jù)更改,則不會更新片段,因?yàn)樗鼘⑵伪4嬖趦?nèi)存中。

因此,即使要顯示的片段數(shù)量有限,如果希望能夠刷新片段(例如,重新運(yùn)行查詢以更新片段中的listView),也需要使用FragmentStatePagerAdapter。

我在這里的全部觀點(diǎn)是,碎片的數(shù)量以及它們是否相似,并不總是需要考慮的關(guān)鍵方面。您的片段是否是動態(tài)的也是關(guān)鍵。


查看完整回答
反對 回復(fù) 2019-07-06
  • 3 回答
  • 0 關(guān)注
  • 1382 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號