1. 程式人生 > >Fragment的切換重新整理UI佈局以及Fragment的生命週期解釋

Fragment的切換重新整理UI佈局以及Fragment的生命週期解釋

曾經有同事問我切換Fragment的時候為啥不執行onResume這個方法,也沒辦法重新整理ui介面

@Override
    public void onResume() {
        super.onResume();

    }

其實Fragment的切換重新整理ui要在onHiddenChange這個方法中
   @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged( hidden );
        if (hidden) {// 不在最前端介面顯示
        } else {// 重新顯示到最前端中
            initDBView();
        }
    }
這個方法就是判斷Fragment可見與影藏的方法,如果Fragment建立commit後那麼會執行onResume方法,如果Fragment建立後只是影藏了(hide),另一個Fragment用add方法,然後再顯示那麼就會執行onHiddenChange這個方法,onResume是不執行的,onResume是和Activity有關係的。

Fragment的生命週期:


onAttach

當Fragment新增到Activity的時候呼叫,此方法只會呼叫一次

    onCreate

  建立Fragment的時候呼叫

     onCreateView

                當建立Fragment關聯的View時候呼叫,並將此View關聯到Activity檢視樹種

     onActivityCreate

當Fragment所關聯的Activity建立完畢,也就是onCreate執行完畢並return的時候執行

     onstart

                啟動Fragment的時候呼叫,Fragment可見

     onResume

Fragment可見,並且可以獲取焦點

      onPause

Fragment暫停,Fragment失去焦點

      onStop

Fragment停止,Activity被停止或者Fragment入棧了

      onDestroyView

銷燬Fragment關聯的View

       onDestroy 

銷燬Fragment

       onDettach

當Fragment從Activity失去關聯,Fragment被銷燬、被替換等

Fragment生命週期執行順序:

當Fragment1被最初建立的時候

       onAttach-->onAttachFragment(Activity中的方法)-->onCreate-->onCreateView-->onActivityCreate-->onStart-->onResume

當手機鎖屏了、回到桌面

       onPause-->onStop

       當手機開啟螢幕

       onStart-->onResume

       當切換到Fragment2的時候Fragment1被Replace

       onPause-->onStop-->onDestroyView

      切換到Fragment1的時候

      onCreteView-->onActivityCreate-->onStart-->onResume

      如果Fragment1只是hide話,Fragment2 用add方法, 會執行這個方法onHiddenChange

  其它生命週期未見列印。

  最後Fragment在事物空間操作後一定要commit!

相關推薦

Fragment切換重新整理UI佈局以及Fragment生命週期解釋

曾經有同事問我切換Fragment的時候為啥不執行onResume這個方法,也沒辦法重新整理ui介面 @Override public void onResume() { super.onResume(); }其實Fragment的切換重

Android viewpager與fragment切換重新整理引起的ANR

問題描述:切換底部的tab頁,每次切換tab頁都會重新整理頁面資料,反覆操作就會出現ANR。 bug日誌: ANR in com.jieyue.jieyue (com.jieyue.jieyue/.ui.activity.MainActivity) PID: 29494

Android中橫豎屏切換載入不同佈局導致fragment資料丟失的問題

親們好,求助大神,改了好長時間也沒搞定這個問題,圖上的四幅圖依次為豎屏切橫屏,再次切豎屏,再切橫屏的效果,當再次切換豎屏的時候資料就沒有顯示了。我設定了android:configChanges="screenSize|orientation|keyboardHidden

Fragment生命週期Fragment執行hide、show後的生命週期探討

一、Fragment 生命週期中的每個方法的意義與作用:     1.setUserVisibleHint()(此方法不屬於生命週期方法):設定Fragment 使用者可見或不可見時呼叫此方法,此方法在Fragment所有生命週期執行之前執行。當Fragment 可見狀態改變

Qt的UI佈局以及控制元件間隔(Spacing)邊距(Margins)

替一個Widget設定佈局有兩種方法。 1layout 建構函式傳遞QWidget QVBoxLayout* MainQVboxLayout=new QVBoxLayout(MainWidget); 2layout建構函式傳遞NULL,呼叫QWidget的setlayou

Android Fragment的FragmentTransaction 操作和對應的生命週期變化

1. Fragment的生命週期和Activity的生命週期 Fragment是依附於Activity而存在的,當Activity在onCreate時,Fragment會進行onAttach, onCreate, onCreateView, onActivityCreat

典型WEB UI佈局以及設計命名規範

1.    Container “container“ 就是將頁面中的所有元素包在一起的部分,這部分還可以命名為: “wrapper“, “wrap“, “page“. 2.    Header “header” 是網站頁面的頭部區域,一般來講,它包含網站的logo和一些

Servlet 介紹 以及Servlet生命週期(詳細)

在上一篇文件裡提到了CGI和Servelt 的對比,並介紹了在JAVA編寫的應用程式Servlet在伺服器上執行主要就是解決了CGI程序處理佔資源效率高的問題。Servlet 只是一個名詞,具體的解釋就是使用JAVA編寫的一個應用程式,在伺服器上執行,處理請求的資訊,並且將處

JavaScript中var 和let的區別,四個概念變數提升,作用域,重複宣告,暫時死區以及生命週期去看它

前言 今天無意當中遇到了js中的變數宣告,發現除了var居然還有let宣告方法,比較新奇,特地記錄下來它們兩者的區別!絕對能讓你理解清楚,PS 後面有重頭戲 思路 主要從四個角度來講述它們的區別 變數提升 作用域 重複宣告 暫時死區 變數提

Android重啟當前Activity以及Activity生命週期的變化

重啟Activity的方法 private void reStartActivity() { Intent intent = getIntent(); finish(); st

spring ioc容器結構初始化步驟以及bean生命週期和三種建立方式

建立物件的三種方式:             1、採用預設的建構函式建立        2、採用靜態工廠方法           1、寫一個靜態工廠方法類                public class HelloWorldFactory {    

Android8.0下切換橫豎螢幕時Activity的生命週期

一、前言 看了一些關於切換螢幕時Activity生命週期變化的部落格,初步理解了切換螢幕時的變化過程(私以為,預設情況下之所以切換橫豎屏時會重新載入活動,是為了更好的使用者體驗哈哈)。但是因API版本號以及收集型號的不一樣,這個過程都會略有不同。——————&

Tomcat 3.0版本的一些說明 以及 servlet 生命週期的簡單介紹

1.在Eclipse 內部可以把Tomcat 版本設定成3.0 這樣就可以省略掉書寫web.xml 檔案 2.在接下來的操作過程中以下專案不要勾選 3.這個時候可以觀察project Exploer中,WEB-INF 底下的lib 是沒有所謂的 web.xml 這個

Fragment和Activity生命週期以及橫豎屏切換生命週期的影響

生命週期變化 : 切換到該Fragment 05-21 14:26:35.095: D/FragmentDemo(7649): onAttach 05-21 14:26:35.095: D/FragmentDemo(7649): onCreate 05-21 14:26:35.095: D/Frag

Android viewPager Fragment 切換生命週期

記錄一下: 場景: 上面是一個很常見的一個切換效果:結果一般都是一個主Activity,裡面佈局了一個TabLayout+ViewPager,ViewPager裡面添加了4個Fragment,假如日期時間為A,聲音設定為B 開關機設定為C,認證模式 為D 第一步:列印一下主要的Log

Fragment 1 切換Fragment 2時生命週期變化

1、通過 add hide show 方式來切換 Fragment Fragment1 的生命週期變化為:onCreate()、onCreateView、onStart()、onResume() 回撥 onHiddenChanged() 方法 Fragment2 的生命週期變化

在同一個Activity下實現切換Fragment重新整理fragment介面

在做專案時遇到一個問題,我在A fragment中展示從伺服器拿到的資料,在B fragment,新增資料到伺服器,同時B fragment同步重新整理,糾結了很久都不行,因為我建立fragment時用的是:show與hide switch (index) {

理解Fragment生命週期以及各個週期做什麼事,快取fragment不被銷燬

最近做個小東西時用到fragment所以深刻的鞏固了下基礎知識,先上個官方的流程圖 onAttach() 主要用於與activity的通訊 獲得activity的傳遞的值 當然也可以使用getActivity(),前提是這個fragment已經和宿主的activity關聯

理解Fragment生命週期以及各個週期做什麼事,快取fragment不被銷燬。

最近做個小東西時用到fragment所以深刻的鞏固了下基礎知識,先上個官方的流程圖 onAttach()  主要用於與activity的通訊 獲得activity的傳遞的值 當然也可以使用getActivity(),前提是這個fragment已經和宿主的activi

Fragment與ViewPager的結合做出區域性滑動重新整理頁面,以及關於app.FragmentManager和v4包的FragmentPagerAdapter衝突

ViewPager+Fragment可以做出多頁面滑動效果,讓我們的應用程式介面操作起來更加靈活一.首先來說說Fragment支援Fragment的有兩個包importandroid.support.v4.app.Fragment;importandroid.app.Frag