1. 範例程式
val fragment1 = TestFragment1() val fragment2 = TestFragment2() var flag = false //以下放在onCreate即可 supportFragmentManager.commit { setReorderingAllowed(true) add( R.id.fragment_container_view, fragment1 ) add( R.id.fragment_container_view, fragment2 ) } binding.show1Btn.setOnClickListener { supportFragmentManager.commit { show(fragment1) hide(fragment2) } } binding.show2Btn.setOnClickListener { supportFragmentManager.commit { show(fragment2) hide(fragment1) } } binding.uiControlBtn.setOnClickListener { if(flag) { supportFragmentManager.commit { attach(fragment1) } } else { supportFragmentManager.commit { detach(fragment1) } } flag = !flag }
2. Fragment show與hide是什麼呢?
是FragmentTransaction裡面的方法
可以用來隱藏,或顯示指定的Fragment
並且“不會"影響到生命週期
3. Fragment attach與detach是什麼呢?
是FragmentTransaction裡面的方法
可以用來重建/摧毀UI
並且“會"影響生命週期
重建時,會執行 onViewCreated -> onResume
摧毀時,會執行 onPause -> onStop
以上內容參考Android 官網
相關文章
Android Fragment建立、更換、尋找、Back Stack | Android Fragment add與replace分析 |
1. 使用XML在Activity與Fragment連接 2. 使用程式方式在Activity與Fragment連接 3. 將已新增的Fragment更換 4. 尋找已建立的Fragment 5. Fragment對應的FragmentManager 6. Back Stack使用 | |
Android Fragment 自定義constructor | Android Fragment Transitions動畫效果 |
1. 重寫FragmentFactory 2. 建立Fragment 3. 在Activity中使用 | 1. 範例程式 2. 功能介紹 |
Android Fragment shared element transitions動畫效果 | Android Fragment lifecycle |
1. 範例程式 2. 功能介紹 | 1. 簡略 2. 測試搭配setMaxLifecycle的生命週期 |
Android Fragment通訊 | |
1. 簡要 2. 使用View Model共享數據 3. 使用 Fragment Result API獲取結果 |
訂閱Codeilin的旅程,若有最新消息會通知。
廣告