Kotlin - idiomatic way to create a Fragment newInstance pattern

前端 未结 6 1846
灰色年华
灰色年华 2020-12-29 19:27

The best practice on Android for creating a Fragment is to use a static factory method and pass arguments in a Bundle via setArguments()

6条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-29 20:08

    Kotlin package-level function

    What about about that kotlin says to use package level function instead of “static” method

    MyFragment.kt

    class MyFragment : Fragment() {
    
        .....
    
    }
    
    fun MyFragmentNewInstance(): MyFragment {
        return MyFragment()
    }
    

    MyActivity.kt

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (supportFragmentManager.findFragmentById(R.id.fragmentContainer) == null) {
            supportFragmentManager.beginTransaction()
                .add(R.id.fragmentContainer, MyFragmentNewInstance())
                .commit()
        }
    }
    

提交回复
热议问题