【Android基礎】Fragment 詳解之Fragment介紹

Fragment在Android 3.0(?API 11)引入,是為了支持在大屏上顯示更加動態、靈活的UI,比如在平板和電視上。Fragment可以看作是嵌套的Activity,類似ActivityGroup,但是開銷肯定沒有ActivityGroup那么大,每一個Fragment管理著一個View,Fragment彼此之間相互獨立,有自己的生命周期,這個生命周期是在Activity生命周期中的。Fragment可以用來解決屏幕適配和動態創建View的問題。

一個Fragment總是嵌入到一個Activity,是一個模塊化的View,它的生命周期受它所嵌入的Activity生命周期的的影響。比如Activity進入paused狀態,那么多有附在這個Activity的Fragment都會進入paused狀態,當Activity被銷毀時,所有附在這個Activity的Fragment也都會銷毀。然后當Activty進入運行狀態onResume后,你可以獨立的管理每一個Fragment,可以add一個Fragment,也可以remove一個Fragment。在你執行一個Fragment事務的時候(創建并且顯示出來),你可以把這個Fragment放到Fragment回退棧中,這個回退棧記錄了所有你執行過的Fragment事務,用戶在點擊返回鍵的時候可以從Fragment棧中取一個Fragment來顯示。

Fragment的生命周期:

如果你很清楚Activity的生命周期那么Fragment的生命周期就很容易理解,在Fragment中有很多類似Activity生命周期函數的回調方法,這些方法由Android系統調用。官方的Fragment生命周期圖如下:

【Android基礎】Fragment 詳解之Fragment介紹
  • onCreat():
    系統調用這個函數來創建Fragment,這個方法中用來創建整個Fragment周期中都會用到的資源,比如在paused、stoped,或者resumed方法中用到的資源。
  • onCreateView():
    當Fragment需要第一次繪制用戶界面的時候系統調用這個函數完成UI的繪制,你必須在這個函數返回一個View,這個View是Fragment的根View,如果你不想Fragment顯示View就返回null。
  • onPause():
    當離開Fragment時系統會首先調用這個函數,在這個函數中你需要保存用戶的狀態類似在Activity的onPause方法中做的工作。
一般來說應用程序至少需要重寫這三個函數,來完成你的應用程序邏輯。
本篇文章只是Fragment的一個簡單介紹,后續會詳細的寫Fragment的創建、管理和生命周期。

本文為原創,禁止轉載!

大家如果對編程感興趣,想了解更多的編程知識,解決編程問題,想要系統學習某一種開發知識,我們這里有java高手,C++/C高 手,windows/Linux高手,android/ios高手,請大家關注我的微信公眾號:程序員互動聯盟or coder_online,大牛在線為您提供服務。

【Android基礎】Fragment 詳解之Fragment介紹

轉載于:https://www.cnblogs.com/2010wuhao/p/4770816.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273013.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言統計數據,數據統計

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include void input(float score[10][5]);void average(float aver[]);void course(float cour[]);float score[10][5],aver[10],cour[5];int i,j;void main(){printf("please input the scores of all the students\n"…

傳遞閉包c語言算法解析,找關系的傳遞閉包 用c語言編 一個關系的傳遞閉包

為什么叫傳遞閉包??有什么特殊含義??設R是X上的二元關系,如果另一個關系R1滿足:R1是傳遞的,R是R1的子集,對于任何可傳遞關系R11如果有R是R11的子集,就有R1是R11的子集。則…

linux之cp/scp命令+scp命令詳解

命令:cp 使用權限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。 把計 -a 盡可能將檔案狀態、權限等資料都照原狀予…

linux安裝mq報5724,linux下MQ簡單配置手冊.doc

精品消息發送涉及到的隊列及通道示意圖:定義發送方為A,接收方為B,下面是建立A向B發送消息的單向配置。發送方A的配置1. 在發送方A創建隊列管理器QM_A:[[email protected] ~]$ crtmqm -q QM_A成功后會有如下提示:There …

asp.net MVC控制器中返回JSON格式的數據時提示下載

Asp.net mvc在接收的是JSON格式的數據,但是奇怪的是在IE中提示下載文件,其他瀏覽器中一切正常,下載后,里面的內容就是在控制器中返回的數據。代碼如下: 視圖中js代碼: $("#form").ajaxSubmit({ …

linux postfix 搭建,linux 下搭建postfix服務器

linux 下postfix郵箱的安裝linux一、首先關閉sendmail服務service sendmail stop二、chkconfig sendmail off(關閉開機自啟動)三、修改DNS正解文件,使DNS可以解析郵箱服務添加下面兩行mail.zhubf.com. IN A 172.17.17.2zhubf.com. IN MX 10 …

兩個鏈表的第一個公共結點-輸入兩個鏈表,找出它們的第一個公共結點。

1、蠻力法: 1 /*2 struct ListNode {3 int val;4 struct ListNode *next;5 ListNode(int x) :6 val(x), next(NULL) {7 }8 };*/9 class Solution { 10 public: 11 ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHe…

android 飛框動畫,AndroidTV中實現飛框選中效果

相信很多從事AndroidTV開發的朋友都對如何展示item的選中效果感到苦惱,電視端開發與移動端最大的不同是用戶只能通過一個遙控器進行控制(當然如果你的電視是觸屏的話除外……),在這個時候,我們需要讓用戶知道當前選中的到底是哪一個項目&…

VB 文件操作

1. 打開文件 Open "文件名" [for 模式] [Access 操作類型] [鎖定] As [#]文件號 [Len記錄長度] 模式:OUTPUT 寫 INPUT 讀 APPEND 追加 操作類型: READ WRITE READWRITE 鎖定: Share (缺省)LOCKREAD LOCKW…

數組總結

1冒泡排序和選擇排序 1 package hello;2 3 import java.io.BufferedOutputStream;4 import java.io.File;5 import java.io.FileInputStream;6 import java.io.FileNotFoundException;7 import java.io.FileOutputStream;8 import java.io.IOException;9 import java.io.InputS…

鴻蒙系統支持980,鴻蒙手機上線時間 鴻蒙系統支持哪些手機2021最新匯總

鴻蒙手機來了,從2019年公布到現在的正式發布,沒想到華為這么迅速,而且華為EMUI微博更名HarmonyOS,在Android與iOS這兩座大山面前,大家覺得鴻蒙系統值得更新體驗嗎?目前來說鴻蒙系統支持第三方手機有哪些呢&…

confluence正常安裝網頁報錯_NAS折騰手記1:在OMV5上安裝ZFS On Linux的正確步驟

起因是直接安裝OVMExtra里自帶的zfs插件會報錯,所以需要使用命令行來做一些前置準備。源配置有兩種方法。1是安裝OMVExtra并在內直接啟用所有測試源下載地址在此?omv-extras.org2是手動添加,執行以下命令vi /etc/apt/sources.list.d/buster-backports.l…

17個新手常見Python運行時錯誤

當初學 Python 時,想要弄懂 Python 的錯誤信息的含義可能有點復雜。這里列出了常見的的一些讓你程序 crash 的運行時錯誤。 1)忘記在 if , elif , else , for , while , class ,def 聲明末尾添加 :(導致 “SyntaxError &#xff1…

android activity alias,動態更換桌標 Activity-alias

前言動態更換App圖標,網上可以收搜到很多,這里也是參考前人經驗,讀完本文可以得到,如何動態更換桌標(非網絡獲取桌標圖片),標志位的闡述,更加透徹的理解.用到的知識activity-alias并不是代表一個Activity,而是代表一個已經存在的Activity的別名。它使用在清單文件中…

python替代php,Python架構的PHP替代方案

I am happily using fabric for my Python projects for deployment. Now I am engaged in a larger PHP project and wondering if there is something like fabric for PHP?解決方案Hmm? Why does it matter? Fabric is just python scripting. So its project language a…

MAC終端安裝grunt--javascript世界得構建工具

祝賀我成為前端啦!~~從年前得小測試到今年得前端,成功轉型!我真是一個進步得好青年,好少女! 這兩天出去受虐,面了兩家前端,表現非常不好,還是回到我現在得公司好好沉淀技術&#xff…

android sdk eclipse沒導入,Android—新的eclipse導入SDK出錯解決辦法

原先系統崩潰,重裝系統,加入一塊內存條,從32位變成62位,原先的eclipse用不了;去官網下載64位的eclipse,安裝,用一樣的方法導入SDK。這時候肯定會提示錯誤,如下:1.This An…

兩個分數化簡比怎么化_我學《分數的意義》心得

停課不停學已經有將近兩個月了,我們邁入了“分數”這一部分。聽媽媽說,這一塊內容很重要,可我覺得到目前為止(明天就學真分數、假分數和帶分數了),分數好像并不比四年級難。看了看書,再做點練習,把這點新的…

html在線拖拽環繞,jQuery實現html元素拖拽

代碼很簡單,效果非常棒,直接給大家上源碼:html定投金額 :元10050010002000300040005000600070008000900010000單位:元css.money-input{margin:36px auto 0;width:330px;font-size:14px;color:#818181}.input-rela{width:250px;height:42px;di…

iphone 抹除設備是什么意思_SMT設備有哪些,SMT是什么意思?

SMT設備其實就是表面貼裝技術所需要的機器,一般一條SMT整線常規包含以下設備:上板機、印刷機、接駁臺、SPI、貼片機、插件機、回流焊、波峰焊、AOI、X-ray、下板機等設備,以上設備是一條比較完整的smt配線清單設備,不同工廠可根據…