首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Fragment 替代 Activity 的核心優勢

     編輯:程式設計綜合問答

適用場景

  • 平板/大屏適配:單 Activity 承載多 Fragment,左右分欄(列表+詳情)自適應布局。
  • 導航抽屜/底部標籤:每個標籤頁對應一個 Fragment,共用 Activity 生命周期與 Toolbar。
  • ViewPager 滑動頁面:配合 FragmentStateAdapter 實現懶加載、內存優化。

核心優勢

優勢說明
UI 模塊化將界面拆分為可復用、獨立生命周期的組件
動態佈局運行時增刪替換 Fragment,無需重啟 Activity
數據保持setRetainInstance(true) 或 ViewModel 跨配置變更保留數據
返回棧管理FragmentManager 精細控制回退導航
過渡動畫共享元素過渡、進出動畫更靈活

最佳實踐

// 單 Activity 容器
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                .replace(R.id.container, new HomeFragment())
                .commit();
        }
    }
}

避坑指南

  • 避免在 Fragment 構造函數傳參,使用 setArguments(Bundle)。
  • 嵌套 Fragment 使用 getChildFragmentManager()。
  • 異步操作綁定 viewLifecycleOwner 防止內存洩漏。

總結

Fragment 並非「替代」Activity,而是 **「組合」Activity 內部 UI** 的標準單元。合理使用能顯著提升大屏適配、導航結構與代碼復用能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved