kotlin
fun <T : Fragment> T.withArguments(vararg params: Pair<String, Any?>): T {
arguments = bundleOf(*params)
return this
}
val fragment = MyFragment().withArguments("param1" to 1, "param2" to "hello")
fragment.transaction {
replace(R.id.container, fragment)
addToBackStack(null)
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("count", count)
}
override fun onViewStateRestored(savedInstanceState: Bundle?) {
super.onViewStateRestored(savedInstanceState)
count = savedInstanceState?.getInt("count") ?: 0
}