Exp*_* be 5 android kotlin android-glide
activity.supportFragmentManager.popBackStackImmediate()
Run Code Online (Sandbox Code Playgroud)
popBackStackImmediate 无法移除 Glide 的 SupportRequestManagerFragment,你知道为什么吗?还有其他方法可以从片段堆栈中删除 SupportRequestManagerFragment 吗?
sas*_*mar 11
这个案例片段使用 Activity 上下文而不是 Glide 的片段上下文。
Glide.with(getActivity()).load("url").into(imageView)
Run Code Online (Sandbox Code Playgroud)
更多细节参考这里
如果 SupportRequestManagerFragment 被添加到您的应用程序片段堆栈的 backstack 条目中,则在片段内部使用基本上下文调用 Glide 方法,因此它不会被添加并为后按创建问题..
Glide.with(this.getActivity().getBaseContext()).load("url").into(imageView)
Run Code Online (Sandbox Code Playgroud)
因为Glide的Fragment并不在FragmentManager的操作backstack上。
参见代码。
pendingSupportRequestManagerFragments.put(fm, current);
fm.beginTransaction().add(current, FRAGMENT_TAG).commitAllowingStateLoss(); // <-- no addToBackStack() call
Run Code Online (Sandbox Code Playgroud)
如果没有充分的理由,您可能也不应该接触 Glide 的内部结构,但从技术上讲,您可以调用fragmentManager.getFragments()、检查 null (它可以返回 null)、迭代列表、检查if(fragment instanceof SupportRequestManagerFragment),如果是,则使用片段事务将其删除。但这似乎不是一个好主意。^_^
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |