将新片段添加到后台堆栈是否会暂停当前片段?
Does adding a new fragment to the backstack pause the current fragment?
我目前正在向后台堆栈添加一个新片段(在当前片段之上):
val fragmentTransaction = fragmentManager?.beginTransaction()
fragmentTransaction?.add(R.id.cl_my_profile_edit, newFragment)?.addToBackStack(null)
fragmentTransaction?.commit()
这是否会暂停包含此代码的当前片段 运行?
如果这不会暂停当前片段
将这样调用 onPause()
:
val fragmentTransaction = fragmentManager?.beginTransaction()
fragmentTransaction?.add(R.id.cl_my_profile_edit, newFragment)?.addToBackStack(null)
fragmentTransaction?.commit()
onPause()
暂停当前片段?
add()
不会影响任何其他片段 - 顾名思义,它只是添加一个新片段,与同一容器中的任何现有片段重叠。
您可以使用 replace()
替换任何现有片段,从而导致其他片段暂停、停止,并将其视图从视图层次结构中删除。这将确保片段不会在视觉上重叠。
您不能安全地调用 onPause()
或任何其他 on__
方法 - 这些方法是由框架调用的,而不是由您调用的。
我目前正在向后台堆栈添加一个新片段(在当前片段之上):
val fragmentTransaction = fragmentManager?.beginTransaction()
fragmentTransaction?.add(R.id.cl_my_profile_edit, newFragment)?.addToBackStack(null)
fragmentTransaction?.commit()
这是否会暂停包含此代码的当前片段 运行?
如果这不会暂停当前片段
将这样调用 onPause()
:
val fragmentTransaction = fragmentManager?.beginTransaction()
fragmentTransaction?.add(R.id.cl_my_profile_edit, newFragment)?.addToBackStack(null)
fragmentTransaction?.commit()
onPause()
暂停当前片段?
add()
不会影响任何其他片段 - 顾名思义,它只是添加一个新片段,与同一容器中的任何现有片段重叠。
您可以使用 replace()
替换任何现有片段,从而导致其他片段暂停、停止,并将其视图从视图层次结构中删除。这将确保片段不会在视觉上重叠。
您不能安全地调用 onPause()
或任何其他 on__
方法 - 这些方法是由框架调用的,而不是由您调用的。