Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Android支持库25.3.0重新创建FragmentManager#getFragments()行为_Java_Android_Android Fragments - Fatal编程技术网

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的所有片段的列表

Public
getFragments()
方法内容被替换,旧的主体被移动到package private
getActiveFragments()
方法。我可以通过反射来调用它,但是这个解决方案看起来非常粗糙。我想知道是否有更好的解决办法

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()行为?