카테고리 없음

[기계적 인조 인간] Android Reorder Fragment Backstack

행복을전해요 2021. 2. 8. 04:33

이를 수행하는 API는 없지만 지난주에 똑같은 일이 궁금
했기 때문에 직접 구현 한 연습으로 가져갔습니다.

내 방법을 사용하면 Fragment백 스택의 어느 곳에서나을 제거 할 수 있으며 이는 FragmentManagerImplBackStackRecord에 백 스택 정보를 저장하는 내부 변수를 수정하기 위해 refrection을 사용하여 수행됩니다 .

몇 가지 중요한 변수가 있습니다.

  • mBackStack- 정보, 이전 항목, 애니메이션 등 BackStackRecord을 보유 하는 s를 저장합니다.Fragment
  • mActive- 모든 추가 Fragment
  • mAvailBackStackIndices-새로 삽입 된 레코드에서 사용할 수있는 인덱스를 저장 null합니다.mActive
  • 및 기타

150 Fragment초 이상으로 테스트했으며 누수를 감지 할 수 없었지만 힙 인 만 모니터링하고 DDMS다른 메모리 분석을 수행하지 않았습니다.
따라서 일 부팅이 손상 될 수 있으므로 코드를 탐색하고 다시 테스트하고 더 나은 답변을 제공하는 사람이 있는지 확인하고 프로젝트에서이 작업을 정말로 수행해야하는지 다시 생각하십시오.

코드 를 GitHub에 요점으로 업로드했는데 도움이 되었기를 바랍니다.

-------------------

이전의 조각을 재사용하려면 먼저 모든 조각을 숨기고 원하는 조각을 한 번에 표시하기 만하면됩니다. 이렇게하면 조각을 제거하거나 다시로드하지 않고도 조각을 재사용 할 수 있습니다. 하지만 구현하기 전에 백 스택에 조각을 추가해야합니다.



출처
https://stackoverflow.com/questions/22050281