加载fragment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* 加载fragment
*/
fun FragmentActivity.loadFragment(id: Int, from: Fragment?, to: Fragment?) {
supportFragmentManager.let { manager ->
manager.beginTransaction().run {
if (from != to) {
val fromFragment = manager.findFragmentByTag(from?.javaClass?.simpleName)
fromFragment?.let { hide(it) }
val toFragment = manager.findFragmentByTag(to?.javaClass?.simpleName)
if (toFragment == null || !toFragment.isAdded) {
to?.let { add(id, it, it.javaClass.simpleName).commit() }
} else {
toFragment.let { show(it).commit() }
}
}
}
}
}

/**
* 移除fragment
*/
fun FragmentActivity.removeFragment(fragment: Fragment) {
supportFragmentManager
.beginTransaction()
.remove(fragment)
.commit()
}