Java 如何从Android支持库25.3.0重新创建FragmentManager#getFragments()行为
我的应用程序使用Java 如何从Android支持库25.3.0重新创建FragmentManager#getFragments()行为,java,android,android-fragments,Java,Android,Android Fragments,我的应用程序使用FragmentManager#getFragments()方法: 一切都很好,但当我将Android支持库从25.3.0版本升级到25.4.0版本时,它停止了工作。在25.4.0中getFragments()方法不再返回所有片段: 获取当前添加到FragmentManager的所有片段的列表。这可能包括隐藏的和显示的。这将不包括仅在后堆栈中的任何片段,或分离或移除的片段 以前: 获取当前添加到FragmentManager的所有片段的列表 PublicgetFragments
FragmentManager#getFragments()
方法:
一切都很好,但当我将Android支持库从25.3.0版本升级到25.4.0版本时,它停止了工作。在25.4.0中getFragments()
方法不再返回所有片段:
获取当前添加到FragmentManager的所有片段的列表。这可能包括隐藏的和显示的。这将不包括仅在后堆栈中的任何片段,或分离或移除的片段
以前:
获取当前添加到FragmentManager的所有片段的列表
PublicgetFragments()
方法内容被替换,旧的主体被移动到package privategetActiveFragments()
方法。我可以通过反射来调用它,但是这个解决方案看起来非常粗糙。我想知道是否有更好的解决办法
public List<Fragment> getFragments() {
if(this.mAdded.isEmpty()) {
return Collections.EMPTY_LIST;
} else {
ArrayList var1 = this.mAdded;
synchronized(this.mAdded) {
return (List)this.mAdded.clone();
}
}
}
List<Fragment> getActiveFragments() {
if(this.mActive == null) {
return null;
} else {
int count = this.mActive.size();
ArrayList fragments = new ArrayList(count);
for(int i = 0; i < count; ++i) {
fragments.add(this.mActive.valueAt(i));
}
return fragments;
}
}
public List getFragments(){
if(this.mAdded.isEmpty()){
返回集合。空_列表;
}否则{
ArrayList var1=this.mAdded;
同步的(这个。疯狂的){
返回(列出)this.mAdded.clone();
}
}
}
列出getActiveFragments(){
如果(this.mActive==null){
返回null;
}否则{
int count=this.mActive.size();
ArrayList片段=新的ArrayList(计数);
对于(int i=0;i
所以我的问题是:
有没有办法从25.3.0版本重新创建FragmentManager#getFragments()行为?