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();
}
}
}
setArguments(Bundle)。getChildFragmentManager()。viewLifecycleOwner 防止內存洩漏。Fragment 並非「替代」Activity,而是 **「組合」Activity 內部 UI** 的標準單元。合理使用能顯著提升大屏適配、導航結構與代碼復用能力。