Study/Android

Kotlin SingleTon with Fragment

힝쏘 2021. 10. 6. 15:31

Fragment instance 선언하는 부분을 어떻게 더 줄일 수 있을까 찾아보다가 발견

 

build.gradle 추가

implementation 'androidx.core:core-ktx:1.6.0'

 

 

Instance open class

open class Instance<T : Fragment>(private val cls: Class<T>) {
    fun newInstance(vararg args : Pair<String, Any>) : T {
        return cls.newInstance().apply {
            arguments = bundleOf(*args)

        }
    }
}

 

Fragment에서 사용 방법

class TestFragment : Fragment() {
    companion object : Instance<TestFragment> (TestFragment::class.java)
}