DialogFragment 需要像使用fragment 使用fragmentManager 管理
显示dialogfragment
- 在添加之前先判断是否被添加过,若已经添加则移除
- 新建dialogfragment对象
- 调用show方法
var dialogFragment = supportFragmentManager.findFragmentByTag("dialogFragment") as DialogFragment?
if (dialogFragment != null) {
supportFragmentManager.beginTransaction().remove(dialogFragment).commitAllowingStateLoss()
}
if (dialogFragment == null) {
dialogFragment = DialogFragment()
}
if (!dialogFragment.isAdded) {
dialogFragment.show(supportFragmentManager, "dialogFragment")
}
销毁dialogfragment
Dialogfragment的生命周期和activity关联,若activity在调用在销毁时也会同时销毁掉dialogfragment。
如果需强制销毁,调用dismissAllowingStateLoss()方法
注:如果没有判断,已经添加了,但是也没有先删除就show,会出现页面内嵌套的片段失去焦点,无法正常使用