activity.supportFragmentManager.popBackStackImmediate()
popBackStackImmediate无法删除Glide的SupportRequestManagerFragment,您知道为什么吗?还有什么其他方法可以从片段堆栈中删除SupportRequestManagerFragment?
答案 0 :(得分:1)
此案例片段使用Activity上下文而不是Glide的片段上下文。
Glide.with(getActivity()).load("url").into(imageView)
更多详细信息,请参见Here
如果将SupportRequestManagerFragment添加到应用程序片段堆栈的backstack条目中,则在片段内部使用基本上下文调用Glide方法,这样就不会添加它,并给回压带来麻烦。
Glide.with(this.getActivity().getBaseContext()).load("url").into(imageView)
答案 1 :(得分:1)
因为Glide的Fragment不在FragmentManager的操作堆栈中。
请参见code。
pendingSupportRequestManagerFragments.put(fm, current);
fm.beginTransaction().add(current, FRAGMENT_TAG).commitAllowingStateLoss(); // <-- no addToBackStack() call
您可能也应该无缘无故接触Glide的内部结构,但从技术上讲,您可以调用fragmentManager.getFragments()
,检查是否为空(它可以返回空值),迭代列表,检查if(fragment instanceof SupportRequestManagerFragment)
,如果是,则通过分段事务将其删除。但这似乎不是一个好主意。 ^ _ ^