Trước hết, tôi đang sử dụng FragmentStatePagerAdapter để nuôi một ViewPager với các đoạn để hiển thị.ViewPager không phải lúc nào cũng làm mới khi setAdapter được gọi, FragmentStatePagerAdapter
Khi ứng dụng ở trạng thái đang hoạt động (tức là sau onResume()
), hãy gọi setAdapter trên ViewPager sẽ luôn hoạt động và làm mới ViewPager của tôi, phương thức getItem(int position)
trong bộ điều hợp được gọi.
Tuy nhiên sau khi thay đổi định hướng, nếu tôi gọi setAdapter trong phương thức onCreate(Bundle savedInstance)
hoạt động của mình, phương thức getItem(int position)
không được gọi và đoạn cũ được sử dụng lại.
Tôi nghĩ có lẽ FragmentManager đang làm điều gì đó mà tôi không hiểu? Trình quản lý phân đoạn là thứ duy nhất không bị hủy trong khi thay đổi hướng.
Cảm ơn
Sự cố là SavedState. Tôi có cùng một vấn đề nhưng không có giải pháp. Bạn có thể thử làm theo: befor bạn đặt adapter bộ điều hợp cuộc gọi.saveState, hơn đặt bộ điều hợp và gọi restoreSavedState với trạng thái đã lưu. Trong trường hợp của tôi nó không giúp đỡ, nhưng có thể cho bạn. Lý do: trong SetPager setAdapter nó lưu trạng thái hiện tại và tái sử dụng nó. (tôi nghĩ) – Informatic0re
Tìm câu trả lời đúng ở đây: http://stackoverflow.com/questions/13910826/viewpager-fragmentstatepageradapter-orientation-change – Informatic0re
Điều này có gây ra rò rỉ bộ nhớ không? Nhiều người nói điều đó. Bất kỳ giải pháp khác làm thế nào để xử lý kịch bản này? – pradyumnad