欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

androidfragment,android fragment和activity的區(qū)別

android fragment有什么用

自從Android 3.0中引入fragments 的概念,其目的是為了解決不同屏幕分辯率的動(dòng)態(tài)和靈活UI設(shè)計(jì)。大屏幕如平板小屏幕如手機(jī),平板電腦的設(shè)計(jì)使得其有更多的空間來放更多的UI組件,而多出來的空間存放UI使其會(huì)產(chǎn)生更多的交互,從而誕生了fragments 。

利州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

fragments 的設(shè)計(jì)不需要你來親自管理view hierarchy 的復(fù)雜變化,通過將Activity 的布局分散到frament 中,可以在運(yùn)行時(shí)修改activity 的外觀,并且由activity 管理的back stack 中保存些變化。當(dāng)一個(gè)片段指定了自身的布局時(shí),它能和其他片段配置成不同的組合,在活動(dòng)中為不同的屏幕尺寸修改布局配置(小屏幕可能每次顯示一個(gè)片段,而大屏幕則可以顯示兩個(gè)或更多)。

ITjob網(wǎng)有關(guān)于Android的文章和帖子,如果你想了解的更細(xì)致的話,可以自己去看看。也可以去相關(guān)的論壇,或者大牛的博客看看。希望對(duì)你有幫助。

Android——Fragment

Fragment必須總是被嵌入到一個(gè)activity之中,并且fragment的生命周期直接接受其宿主activity的生命周期的影響。你可以認(rèn)為fragment是activity的一個(gè)模塊零件,它有自己的生命周期,接收它自己的輸入的事件,并且可以在activity運(yùn)行時(shí)添加或者刪除。

應(yīng)該將每一個(gè)fragment設(shè)計(jì)為模塊化和可復(fù)用化的activity組件。也就是說,你可以在多個(gè)activity中引用同一個(gè)fragment,因?yàn)閒ragment定義了它自己的布局,并且使用它本身生命周期回調(diào)的行為。

Fragment比Activity多了幾個(gè)額外的生命周期回調(diào)方法:

管理fragment生命周期與管理activity生命周期很相像,像activity一樣,fragment也有三種狀態(tài):

1、Resumed:

fragment在運(yùn)行中的activity中可見。

2、Paused:

另一個(gè)activity處于前臺(tái)且得到焦點(diǎn),但是這個(gè)fragment所在的activtiy仍然可見(前臺(tái)activity部分透明,或者沒有覆蓋全屏)。

3、Stopped:

fragment不可見。要么宿主activity已經(jīng)停止,要么fragment已經(jīng)從activity上移除,但已被添加到后臺(tái)棧中。一個(gè)停止的fragment仍然活著(所有的狀態(tài)和成員信息仍然由系統(tǒng)保留著)。但是,它對(duì)于用戶來講已經(jīng)不再可見,并且如果activity被殺掉,它也將被殺掉。

如果activity的進(jìn)程被殺掉了,在activity被重新創(chuàng)建時(shí),你恢復(fù)fragment狀態(tài)??梢詧?zhí)行fragment的onSaveIntanceState()來保存狀態(tài)(注意:fragment是在onCreate(),onCreateView()或者onActivityCreate()中進(jìn)行恢復(fù))。

在生命周期方面,activity和fragment之間一個(gè)很重要的不同就是在各自的后臺(tái)棧中是如何存儲(chǔ)的。當(dāng)activity停止時(shí),默認(rèn)情況下activity被安置在由系統(tǒng)管理的activity后臺(tái)棧中;fragment僅當(dāng)在一個(gè)事務(wù)被移除時(shí),通過顯式調(diào)用addToBackStack()請(qǐng)求保存的實(shí)例,該fragment才被置于由宿主activity管理的后臺(tái)棧。

類似與Android系統(tǒng)為Activity維護(hù)一個(gè)任務(wù)棧,我們也可以通過Activity維護(hù)一個(gè)回退棧來保存每次Fragment事務(wù)發(fā)生的變化。

如果你將Fragment任務(wù)添加到回退棧,當(dāng)用戶點(diǎn)擊后退按鈕時(shí),將看到上一次的保存的Fragment。一旦Fragment完全從后退棧中彈出,用戶再次點(diǎn)擊后退鍵,則退出當(dāng)前Activity。

通過Arguments創(chuàng)建Fragment,不建議通過為Fragment添加帶參數(shù)的構(gòu)造函數(shù)

1、FragmentPagerAdapter:對(duì)于不再需要的fragment,選擇調(diào)用detach方法,僅銷毀視圖,并不會(huì)銷毀fragment實(shí)例。

2、FragmentStatePagerAdapter:會(huì)銷毀不再需要的fragment,當(dāng)當(dāng)前事務(wù)提交以后,會(huì)徹底的將fragment從當(dāng)前Activity的FragmentManager中移除。

3、懶加載,核心方法是 setUserVisibleHint()

原因1:橫豎屏切換,造成Fragment重新實(shí)例化。

原因2:按下Home鍵,Activity處于后臺(tái),由于內(nèi)存不足被銷毀,重新喚醒時(shí)Fragment重新實(shí)例化。

注:出現(xiàn)的原因是在 API24 之前的 v4包 的源碼問題,

解決方案:通過檢查onCreate的參數(shù)Bundle savedInstanceState就可以判斷,當(dāng)前是否發(fā)生Activity的重新創(chuàng)建:

默認(rèn)的savedInstanceState會(huì)存儲(chǔ)一些數(shù)據(jù),只有在savedInstanceState==null時(shí),才進(jìn)行創(chuàng)建Fragment實(shí)例:

在Android開發(fā)中fragment有什么優(yōu)缺點(diǎn)

Fragment優(yōu)點(diǎn)

Fragment可以使你能夠?qū)ctivity分離成多個(gè)可重用的組件,每個(gè)都有它自己的生命周期和UI。

Fragment可以輕松得創(chuàng)建動(dòng)態(tài)靈活的UI設(shè)計(jì),可以適應(yīng)于不同的屏幕尺寸。從手機(jī)到平板電腦。

Fragment是一個(gè)獨(dú)立的模塊,緊緊地與activity綁定在一起??梢赃\(yùn)行中動(dòng)態(tài)地移除、加入、交換等。

Fragment提供一個(gè)新的方式讓你在不同的安卓設(shè)備上統(tǒng)一你的UI。

Fragment 解決Activity間的切換不流暢,輕量切換。

Fragment 替代TabActivity做導(dǎo)航,性能更好。

Fragment 在4.2.版本中新增嵌套fragment使用方法,能夠生成更好的界面效果。

Fragment做局部?jī)?nèi)容更新更方便,原來為了到達(dá)這一點(diǎn)要把多個(gè)布局放到一個(gè)activity里面,現(xiàn)在可以用多Fragment來代替,只有在需要的時(shí)候才加載Fragment,提高性能。

可以從startActivityForResult中接收到返回結(jié)果,但是View不能。

反正我是沒有看到fragment有什么缺點(diǎn)(可能是我程度沒達(dá)到),再說它(fragment)就是一個(gè)api而已感覺不好就用activity就ok了。

Android的Fragment知識(shí)點(diǎn)

frgment被創(chuàng)建的時(shí)候,相關(guān)的生命周期,

onAttach(), onCreate(), onCreateView(), onActivityCreated();

fragment對(duì)用戶可見的時(shí)候,相關(guān)的生命周期,

onStrat(), onResume(),

fragment進(jìn)入“后臺(tái)模式”的時(shí)候,相關(guān)的生命周期,

onPause(), onStop(),

fragment被銷毀的時(shí)候,相關(guān)的生命周期,

onPause(), onStop(), onDestroyView(), onDestroy(), onDetach()

可用onCreate()、onCreateView()、onActivityCreated()方法Bundle對(duì)象保存一個(gè)fragment的對(duì)象

onAttach():Fragment和Activity相關(guān)聯(lián)時(shí)調(diào)用,可以通過該方法獲取Activity引用,還可以通過getArguments()獲取參數(shù)。

onCreate():Fragment創(chuàng)建時(shí)被調(diào)用。

onCreateView():創(chuàng)建Fragment的布局。

onActivityCreated():當(dāng)Activity完成onCreate時(shí)調(diào)用。

onStart():當(dāng)Fragment可見時(shí)。

onResume():當(dāng)Fragment可見,且可交互時(shí)調(diào)用。

onPause():當(dāng)Fragment不可交互,但可見時(shí)。

onStop():當(dāng)Fragment不可見時(shí)。

onDestroyView():當(dāng)Fragment的UI從視圖結(jié)構(gòu)中移除時(shí)調(diào)用。

onDestroy():銷毀Fragment時(shí)

onDetach():當(dāng)Fragment和Activity解除關(guān)聯(lián)時(shí)調(diào)用。

分享標(biāo)題:androidfragment,android fragment和activity的區(qū)別
文章位置:http://chinadenli.net/article6/dsiedog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司