1.主要用到了以下功能:
添加Fragment
替换Fragment
2.Fragment的无损添加
//TODO 新加载一个Fragment。
fun AppCompatActivity.ext_addNewFragment(new_add_fragment: Fragment, container_view_id: Int = R.id.forget_password_fragment,/* hide_fragment_list: List<Fragment> = listOf(),*/ need_back_from_stack: Boolean = false) {
val transaction = this.supportFragmentManager.beginTransaction()
transaction?.add(container_view_id, new_add_fragment) //新加
transaction?.show(new_add_fragment) //显示
// hide_fragment_list.forEach {
// transaction.hide(it) //隐藏其它
// }
if (need_back_from_stack) {
transaction?.addToBackStack(null) //加入回退栈。 //TODO 并且,如果按照默认模式来的话,返回键,就会从栈顶一直清空到栈底的。(默认的【返回操作】)。(当然,你也可以自己在onBackPress里面玩些花样)
}
transaction?.commit()//最终提交。
}
3.Fragment的无损极快替换
fun AppCompatActivity.ext_showOldFragment(show_old_fragment: Fragment, hide_fragment_list: List<Fragment> = listOf(), fragment_transaction_anim: Int = FragmentTransaction.TRANSIT_FRAGMENT_FADE) {
val transaction = this.supportFragmentManager.beginTransaction()
transaction.setTransition(fragment_transaction_anim) //此处,可以设置转换动画。
hide_fragment_list.forEach {
transaction.hide(it) //隐藏
}
transaction.show(show_old_fragment) //显示
transaction.commit() //提交
}