ããèªä»Android 3.0ä¸å¼å ¥fragments çæ¦å¿µï¼æ ¹æ®è¯æµ·çç¿»è¯å¯ä»¥è¯ä¸º:ç¢çãç段ãå ¶ç®çæ¯ä¸ºäºè§£å³ä¸åå±å¹å辩ççå¨æåçµæ´»UI设计ã大å±å¹å¦å¹³æ¿å°å±å¹å¦ææºï¼å¹³æ¿çµèç设计使å¾å ¶ææ´å¤ç空é´æ¥æ¾æ´å¤çUIç»ä»¶ï¼èå¤åºæ¥ç空é´åæ¾UIä½¿å ¶ä¼äº§çæ´å¤ç交äºï¼ä»èè¯çäºfragments ã
ããfragments ç设计ä¸éè¦ä½ æ¥äº²èªç®¡çview hierarchy çå¤æååï¼éè¿å°Activity çå¸å±åæ£å°frament ä¸ï¼å¯ä»¥å¨è¿è¡æ¶ä¿®æ¹activity çå¤è§ï¼å¹¶ä¸ç±activity 管ççback stack ä¸ä¿åäºååãå½ä¸ä¸ªç段æå®äºèªèº«çå¸å±æ¶ï¼å®è½åå ¶ä»ç段é ç½®æä¸åçç»åï¼å¨æ´»å¨ä¸ä¸ºä¸åçå±å¹å°ºå¯¸ä¿®æ¹å¸å±é ç½®ï¼å°å±å¹å¯è½æ¯æ¬¡æ¾ç¤ºä¸ä¸ªç段ï¼è大å±å¹åå¯ä»¥æ¾ç¤ºä¸¤ä¸ªææ´å¤ï¼ã
ããFragmentå¿ é¡»è¢«åæå¯éç¨ç模åãå 为fragmentæèªå·±çlayoutï¼èªå·±è¿è¡äºä»¶ååºï¼æ¥æèªå·±ççå½å¨æåè¡ä¸ºï¼æä»¥ä½ å¯ä»¥å¨å¤ä¸ªactivityä¸å å«åä¸ä¸ªFragmentçä¸åå®ä¾ãè¿å¯¹äºè®©ä½ ççé¢å¨ä¸åçå±å¹å°ºå¯¸ä¸é½è½ç»ç¨æ·å®ç¾çä½éªå°¤å ¶éè¦ã
ããFragmentä¼ç¹
ããFragmentå¯ä»¥ä½¿ä½ è½å¤å°activityå离æå¤ä¸ªå¯éç¨çç»ä»¶ï¼æ¯ä¸ªé½æå®èªå·±ççå½å¨æåUIã
ããFragmentå¯ä»¥è½»æ¾å¾å建å¨æçµæ´»çUI设计ï¼å¯ä»¥éåºäºä¸åçå±å¹å°ºå¯¸ãä»ææºå°å¹³æ¿çµèã
ããFragmentæ¯ä¸ä¸ªç¬ç«ç模å,紧紧å°ä¸activityç»å®å¨ä¸èµ·ãå¯ä»¥è¿è¡ä¸å¨æå°ç§»é¤ãå å ¥ã交æ¢çã
ããFragmentæä¾ä¸ä¸ªæ°çæ¹å¼è®©ä½ å¨ä¸åçå®å设å¤ä¸ç»ä¸ä½ çUIã
ããFragment 解å³Activityé´çåæ¢ä¸æµç ï¼è½»éåæ¢ã
ããFragment æ¿ä»£TabActivityå导èªï¼æ§è½æ´å¥½ã
ããFragment å¨4.2.çæ¬ä¸æ°å¢åµå¥fragment使ç¨æ¹æ³ï¼è½å¤çææ´å¥½ççé¢ææã
ããFragmentåå±é¨å 容æ´æ°æ´æ¹ä¾¿ï¼åæ¥ä¸ºäºå°è¾¾è¿ä¸ç¹è¦æå¤ä¸ªå¸å±æ¾å°ä¸ä¸ªactivityéé¢ï¼ç°å¨å¯ä»¥ç¨å¤Fragmentæ¥ä»£æ¿ï¼åªæå¨éè¦çæ¶åæå è½½Fragmentï¼æé«æ§è½ã
ããå¯ä»¥ä»startActivityForResultä¸æ¥æ¶å°è¿åç»æ,ä½æ¯Viewä¸è½ã
ãã
ããFragmentççå½å¨æ
ããä½ å¯ä»¥æfragmentçä½æ¯activityç模ååç»ä»¶ï¼å®æ¥æèªå·±ççå½å¨æ
ãã
ããFragmentæ¯activityççé¢ä¸çä¸é¨åæä¸ç§è¡ä¸ºãä½ å¯ä»¥æå¤ä¸ªFragment们ç»åå°ä¸ä¸ªactivityä¸æ¥å建ä¸ä¸ªå¤é¢çé¢å¹¶ä¸ä½ å¯ä»¥å¨å¤ä¸ªactivityä¸éç¨ä¸ä¸ªFragmentãä½ å¯ä»¥æFragment认为模ååçä¸æ®µactivityï¼å®å ·æèªå·±ççå½å¨æï¼æ¥æ¶å®èªå·±çäºä»¶ï¼å¹¶å¯ä»¥å¨activityè¿è¡æ¶è¢«æ·»å æå é¤ã
ããFragmentä¸è½ç¬ç«åå¨ï¼å®å¿ é¡»åµå ¥å°activityä¸ï¼èä¸Fragmentççå½å¨æç´æ¥åæå¨çactivityçå½±åãä¾å¦ï¼å½activityæåæ¶ï¼å®æ¥æçææçFragment们é½æåäºï¼å½activityéæ¯æ¶ï¼å®æ¥æçææFragment们é½è¢«éæ¯ãç¶èï¼å½activityè¿è¡æ¶ï¼å¨onResume()ä¹åï¼onPause()ä¹åï¼ï¼ä½ å¯ä»¥åç¬å°æä½æ¯ä¸ªFragmentï¼æ¯å¦æ·»å æå é¤å®ä»¬ãå½ä½ å¨æ§è¡ä¸è¿°é对Fragmentçäºå¡æ¶ï¼ä½ å¯ä»¥å°äºå¡æ·»å å°ä¸ä¸ªæ ä¸ï¼è¿ä¸ªæ 被activity管çï¼æ ä¸çæ¯ä¸æ¡é½æ¯ä¸ä¸ªFragmentçä¸æ¬¡äºå¡ãæäºè¿ä¸ªæ ï¼å°±å¯ä»¥ååæ§è¡Fragmentçäºå¡ï¼è¿æ ·å°±å¯ä»¥å¨Fragment级æ¯æâè¿åâé®ï¼åå导èªï¼ã
ãã
ããæ¾ç¤ºFragmentæ¶ï¼è·ç¨æ·äº¤äºï¼è¦è°ç¨çæ ¸å¿ççå½å¨ææ¹æ³å¦ä¸ï¼
ãã1. æFragment对象è·Activityå ³èæ¶ï¼è°ç¨onAttach(Activity)æ¹æ³ï¼
ãã2. Fragment对象çåå§å建æ¶ï¼è°ç¨onCreate(Bundle)æ¹æ³ï¼
ãã3. onCreateView(LayoutInflater, ViewGroup, Bundle)æ¹æ³ç¨äºå建åè¿åè·Fragmentå ³èçView对象ï¼
ãã4. onActivityCreate(Bundle)æ¹æ³ä¼åè¯Fragment对象ï¼å®æä¾éçActivity对象已ç»å®æäºActivity.onCreate()æ¹æ³çæ§è¡ï¼
ãã5. onStart()æ¹æ³ä¼è®©Fragment对象æ¾ç¤ºç»ç¨æ·ï¼å¨å å«è¯¥Fragment对象çActivity被å¯å¨åï¼ï¼
ãã6. onResume()ä¼è®©Fragment对象è·ç¨æ·äº¤äºï¼å¨å å«è¯¥Fragment对象çActivity被å¯æ¢å¤åï¼ã
ãã
ããFragment对象ä¸å使ç¨æ¶ï¼è¦åååè°çæ¹æ³ï¼
ãã1. å 为Fragment对象æä¾éçActivity对象被æèµ·ï¼æè å¨Activityä¸æ£å¨æ§è¡ä¸ä¸ªä¿®æ¹Fragment对象çæä½ï¼è导è´Fragment对象ä¸åè·ç¨æ·äº¤äºæ¶ï¼ç³»ç»ä¼è°ç¨Fragment对象çonPause()æ¹æ³ï¼
ãã2. å 为Fragment对象æä¾éçActivity对象被ç»æ¢ï¼æè åActivityä¸æ£å¨æ§è¡ä¸ä¸ªä¿®æ¹Fragment对象çæä½ï¼è导è´Fragment对象ä¸åæ¾ç¤ºç»ç¨æ·æ¶ï¼ç³»ç»ä¼è°ç¨Fragment对象çonStop()æ¹æ³ã
ãã3. onDestroyView()æ¹æ³ç¨äºæ¸ é¤è·Fragmentä¸çViewå¯¹è±¡å ³èçèµæºï¼
ãã4. Fragment对象çç¶æ被æç»æ¸ çå®æä¹åï¼è¦è°ç¨onDestroy()æ¹æ³ï¼
ãã5. å¨Fragment对象ä¸åè·å®ä¾éçActivityå ³èçæ¶åï¼onDetach()æ¹æ³ä¼ç«å³è¢«è°ç¨