마치 possible to get all fragments of an Activity pretty easily 인 것 같습니다. 그러나 주어진 단편에 대한 모든 하위 단편을 어떻게 얻을 수 있습니까?조각의 모든 하위/내부/중첩 된 조각을 얻는 방법?
이 질문은 getParentFragment API 16
마치 possible to get all fragments of an Activity pretty easily 인 것 같습니다. 그러나 주어진 단편에 대한 모든 하위 단편을 어떻게 얻을 수 있습니까?조각의 모든 하위/내부/중첩 된 조각을 얻는 방법?
이 질문은 getParentFragment API 16
당신은 같은 방법으로 그것을 할 수 관련이있다 - 바로 사용 FragmentManager
사용하여 얻은 Fragment
인스턴스의 대신 Activity
FragmentManager
의 getChildFragmentManager()
. 물론 이것은 사용자가 getFragments()
이 숨겨져 있지 않은 지원 라이브러리의 재 컴파일 된 버전을 사용 중이거나 리플렉션을 사용하여 해당 메소드를 호출한다고 가정합니다.
다음 솔루션은 완벽하지 않습니다하지만 어느 정도 작동합니다
여기 해결책이 있습니다. MyActivity 클래스는 아래와 같습니다. 내용과 Is there a way to get references for all currently active fragments in an Activity?
public class MyActivity {
List<WeakReference<Fragment>> fragList = new ArrayList<WeakReference<Fragment>>();
@Override
public void onAttachFragment (Fragment fragment) {
fragList.add(new WeakReference(fragment));
}
public List<Fragment> getActiveFragments() {
ArrayList<Fragment> ret = new ArrayList<Fragment>();
for(WeakReference<Fragment> ref : fragList) {
Fragment f = ref.get();
if(f != null) {
if(f.isVisible()) {
ret.add(f);
}
}
}
return ret;
}
}
같은 방법 :
MyActivity를 기반으로 어디? 또한, 나는 항상 작동하는 몇 가지 방법을 찾고 있는데, 그것은 애플 리케이션을위한 것이 아니라 모든 애플 리케이션을 위해 작동해야하는 라이브러리를위한 것이다. – Snicolas
(getFragments()를 사용하여) 연결된 응답과 동일합니다. 나는 그렇게 할 수있는 다른 방법이 있다고 생각하지 않습니다. – kcoppock
javadoc이 그렇게 말하지 않더라도 getFragments가 지원 조각 관리자에 공개 된 것처럼 보입니다. 네, 리플렉션을 사용하는 것은 네이티브 프래그먼트 매니저에게 필수입니다. – Snicolas