android使碎片切换界面,玩转Android中的碎片Fragment
引言:在Android開發中,我們都知道一些界面的展示經常會用到的就是Activity,但是Activity存在著很大的局限性,比如說手機上的界面顯示在平板上面就會發生各種變形的問題,Activity也無法實現局部的數據刷新,所以Android3.0之后出來了Fragment,Fragment通常是嵌套在Activity中來使用,提高了界面顯示的靈活性。
一、Fragment簡介
Fragment也被稱作碎片,它相當于一個小型的Activity,您可以將碎片視為 Activity 的模塊化組成部分,它具有自己的生命周期,能接收自己的輸入事件,并且可以在 Activity 運行時添加或刪除片段。同時碎片必須始終嵌入在Activity 中,其生命周期直接受宿主 Activity 生命周期的影響。
二、Fragment的應用場景
1.用一套代碼適配橫豎屏和平板
假設有兩個界面,在手機豎屏和平板豎屏的時候是分為兩個Activity來實現的,而在手機橫屏和平板橫屏的時候在同一個Activity中顯示兩個界面,這個時候用Activity就不好實現,我們采用碎片Fragment來進行實現;
(1).分別在Layout與Layout-land下面創建一個名字相同的Fragment布局文件.這樣做的原因是顯示的過程中系統會根據橫豎屏而去加載不同的布局來達到適配的效果;
(2)創建兩個Fragment
(3).創建一個接口回調來實現兩個Fragment之間的通信;
(4).當點擊第一個Fragment上需要在第二個Fragment作出對應的響應的時候,通過判斷橫豎屏來進行顯示
在豎屏的情況下只顯示一個Fragment,橫屏兩個Fragment都會顯示
三、Fragment與FragmentTabHost的組合使用
FragmentTabHost作為Android4.0版本的控件, 已經被項目廣泛使用, 5.0版本又推出TabLayout+ViewPager顯示多頁;
1.Fragment與FragmentTabHost的組合使用的兩種常用方式
(1).菜單欄在上方的實現方式
(2).菜單欄在底部的實現方式
(3).添加對應的Fragment到對應的TabHost中
2.如何通過修改FragmentTabhost源碼來避免對應的Fragment重新綁定
如果使用原生的類在切換Tabhost對應的Fragment的時候都會觸發重新綁定Fragment,但是在實際的項目應用過程中我們并不希望重新綁定導致Fragment重新加載,所以需要修改源碼中影響Fragment生命周期的代碼,在其doTabChanged()方法中做如下修改即可:
四、總結
本文涉及到了Fragment的使用以及Fragment和Fragment Tabhost的主要使用場景及在使用過程中遇到問題的解決方式,相信做Android開發的朋友都知道,這兩者的組合在很多APP中是很常用的,在用的過程中可能也會遇到一些奇怪的現象,比如說在切換底部菜單欄的時候會導致對應的Fragment重新加載,這里就告訴大家如何去修改對應的源碼來實現避免切換的時候重新加載數據;
總結
以上是生活随笔為你收集整理的android使碎片切换界面,玩转Android中的碎片Fragment的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 定义变量_第三章(第2节)
- 下一篇: 蟑螂被卖到8万块:就因为它们吃过月球上的