Android Fragment show、hide、attach、detach用法

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 StackAndroid Fragment add與replace分析
1. 使用XML在Activity與Fragment連接
2. 使用程式方式在Activity與Fragment連接
3. 將已新增的Fragment更換
4. 尋找已建立的Fragment
5. Fragment對應的FragmentManager
6. Back Stack使用
Android Fragment 自定義constructorAndroid 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的旅程,若有最新消息會通知。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

透過 WordPress.com 建置的網站.

向上 ↑

%d 位部落客按了讚: