Android Fragment用法知識點的講解

来源:https://www.cnblogs.com/dashucoding/archive/2018/08/07/9434506.html
-Advertisement-
Play Games

Android Fragment用法的講解 碎片,它的出現是為了更好展示UI的設計,讓程式更加得到充分的展示。 的出現,如微信的額主界麵包含多個 ,使得微信功能更加簡潔明瞭。 Fragment組件 是`Android 3.0 Fragment`實現更好的用戶體驗。 Fragment載入 1. 靜態加 ...


標題圖

Android Fragment用法的講解

碎片,它的出現是為了更好展示UI的設計,讓程式更加得到充分的展示。Fragment的出現,如微信的額主界麵包含多個Fragment,使得微信功能更加簡潔明瞭。

Android Fragment用法的講解.png

Fragment組件

Android Fragment組件.png

FragmentAndroid 3.0的時候被引入的,主要目的是為了給大屏幕(如平板電腦)添加動態和靈活的UI支持。利用Fragment實現更好的用戶體驗。

圖片

Fragment載入

  1. 靜態載入:添加FragmentActivity佈局中,以xml的形式。
  2. 動態載入:
<LinearLayout
 android:id="@+id/layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal">
</LinearLayout>
//動態載入
MyFragment fragment = new MyFragment();

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
beginTransaction.add(R.id.layout,fragment);
beginTransaction.addToBackStack(null);
beginTransaction.commit();

第一步,獲取一個FragmentManager對象,getFragmentManager()方法,beginTransaction()

第二步,beginTransaction.add()add()方法,容器視圖資源Id

第三步,調用addToBackStack(true)方法,目的為了允許用戶通過按下返回按鍵返回到前一個Fragment狀態,beginTransaction.commit()提交。

FragmentPagerAdapter和FragmentStatePagerAdapter

FragmentPagerAdapter適用於頁面較少的情況,把UI分離,並沒有回收,FragmentStatePagerAdapter適用於頁面較多的情況,每次切換會回收記憶體的。

Fragment生命周期

Fragment有四種狀態:運行狀態,暫停狀態,停止狀態,銷毀狀態。

圖片來源官方:

生命周期

onAttach():
一旦片段與其活動相關聯就被調用;

onCreate():
片段被調用創建;

onCreateView():
創建並返回相關的視圖結構;

onActivityCreated():
表示活動已被創建完成了,這裡是activity創建成功;

onStart():
片段對用戶可見;

onResume():
片段與用戶開始交互;

onPause():
片段與用戶不再交互;

onStop():
片段不再對用戶可見;

onDestroyView():
銷毀與其View相關資源;

onDestroy():
銷毀一切片段;

onDetach():
片段與其活動不再相關聯。

打開界面:onCreate() -> onCreateView()->onActivityCreated()->onStart()-> onResume()

Home:onPause() -> onStop()

回到界面: onStart() -> onResume()

回退: onPause() -> onStop() ->onDestroyView() -> onDestroy()-> onDetach()

Fragment通信

Fragment通信.png

MyFragment myFragment = (MyFragment)fragmentManager(). findFragmentById(R.id.layout);

MainActivity activity=(MainActivity)getActivity();

Fragment方法

  1. replace()FragmentManager的方法。
  2. add()添加
  3. remove()刪除

結語

  • 本文主要講解 Android Fragment用法知識點的講解

  • 下麵我將繼續對Java、 Android中的其他知識 深入講解 ,有興趣可以繼續關註

  • 小禮物走一走 or 點贊

送❤


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.1 日誌文件與數據文件一致性 在上一章備份與恢復里瞭解到事務日誌的重要性,這篇重點來瞭解事務日誌。 事務日誌記錄了資料庫所有的改變,能恢復該資料庫到改變之前的任意狀態。在sql server實例每次啟動時都會去檢查數據文件與日誌文件的一致性。 包括日誌記錄的任何已提交的數據必須體現在數據文件上, ...
  • 問題來源:最近有同事需要執行批量刪除語句。根據他提供的業務需求,推薦他使用“TRUNCATE TABLE”語句。但使用該語句需要 ALTER許可權,這與執行用戶的角色不符。 解決辦法:使用EXECUTE AS語句修改執行許可權。代碼如下: 通過列印出來的loginame可以看出,執行用戶信息已經被修改。 ...
  • /*其實我也搞不懂為什麼要用SQL來創建,明明SQL Server有圖形化創建資料庫多省事啊!*/USE master;​DECLARE @sqlstr nvarchar(max)/*定義一個變數*/DECLARE @database_name nvarchar(20) = 'MyDB';/*這裡輸 ...
  • 最近在MySQL中遇到分組排序查詢時,突然發現MySQL中沒有row_number() over(partition by colname)這樣的分組排序。並且由於MySQL中沒有類似於SQL Server中的row_number()、rank()、dense_rank()等排名函數,所有找到以下實 ...
  • 前言: 想把單行函數進行一個比較全面的總結,並分享給有需要的人,有不明之處還請多多指教。 SQL函數:Oracle的內置函數,包括了單行函數和多行函數,本文重點講解單行函數。單行函數又可以分為許多類,本人將常用的分為5大類: 字元函數(7個),數值函數(7個),日期函數(7個),轉換函數(3個),通 ...
  • 一.備份概述 數據安全是資料庫的生命,資料庫在使用過程中難免會遇到如:使用者的誤操作或是被惡意修改,硬體故障導致數據文件無法被訪問,自然災害導致機房在物理上的損毀。本章從備份與恢復的功能作為解決問題的切入點。在實際工作中會遇到:使用什麼樣的備份策略(比如完整備份,文件備份,差異備份,日誌備份),如何 ...
  • 數據表定義 數據表(或稱表)是資料庫最重要的組成部分之一,資料庫中以表為組織單位存儲數據,資料庫只是一個框架,數據表才是其實質內容。資料庫管理工具中可以顯示資料庫中的所有數據表,數據表是資料庫中一個非常重要的對象,是其他對象的基礎。 創建數據表 方式一:打開資料庫管理工具-》登錄-》選擇資料庫-》選 ...
  • 在目前相信大多數IT開發人員對於人工智慧+大數據並不陌生,使用的場景也越來越廣,日常開發中前端同學也逐漸接觸了更多與大數據相關的開發需求。因此對大數據知識也有必要進行一些學習理解。大數據學習資料分享群119599574 不管你是小白還是大牛,小編我都挺歡迎,今天的源碼已經上傳到群文件,不定期分享乾貨 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...