implementation 'androidx.fragment:fragment-ktx:1.2.2'
kotlin
import androidx.fragment.app.Fragment
import androidx.fragment.app.commitNow
import androidx.lifecycle.lifecycleScope
class MyFragment : Fragment() {
override fun onStart() {
super.onStart()
}
override fun onStop() {
super.onStop()
}
fun doSomething() {
}
}
fun AppCompatActivity.showMyFragment() {
supportFragmentManager.commitNow {
val fragment = MyFragment()
add(R.id.container, fragment)
}
}
fun AppCompatActivity.hideMyFragment() {
supportFragmentManager.commitNow {
val fragment = supportFragmentManager.findFragmentById(R.id.container) as? MyFragment
fragment?.let { remove(it) }
}
}
fun AppCompatActivity.doSomethingWithMyFragment() {
lifecycleScope.launchWhenStarted {
val fragment = supportFragmentManager.findFragmentById(R.id.container) as? MyFragment
fragment?.doSomething()
}
}