2011-12-08 15 views
14

He leído la documentación para android pageadapter y fragmentpageadapter y no vi ninguna diferencia. Quiero decir que uno es un fragmento y uno no, pero ... ¿eso es todo? No tengo mucha experiencia con fragmentos así que tal vez por eso no noto ninguna diferencia. ¿Cuál es la diferencia si uso un FragmentPagerAdapter o un PagerAdapter?Diferencia FragmentPagerAdapter y PagerAdapter

Respuesta

16

La diferencia es que puede usar Fragmentos dentro de un FragmentPageAdapter. Si desea tener fragmentos que se utilizarán en otras partes de su código, este es su Adaptador. De lo contrario, si solo quiere tener un código que no va a volver a usarse, puede usar PagerAdapter.

+0

por lo que cada página en el pageradapter normal, se crea una y otra vez cuando pase el dedo ?? o reutiliza la vista? ¿o te refieres a ese código que no va a ser reutilizado en otras clases? gracias de antemano – Raykud

+0

No, tuve que decir que cuando usas fragmentos, normalmente vas a usar estos fragmentos en más de una actividad. Los fragmentos están vinculados a la actividad que los contiene, por lo que la reutilización de la vista en este caso es la misma que en un viewPager. En el post, hablaba de reutilización con respecto a la funcionalidad, no a la vista. Perdón por no explicar correctamente – jegumi

+0

buena explicación – Steve

5

Implementación de PagerAdapter que usa un Fragmento para administrar cada página. Pero recomiendo usar la clase FragmentStatePagerAdapter, que también maneja el guardado y la restauración del estado del fragmento.

La versión FragmentStatePagerAdapter del buscapersonas es más útil cuando hay un gran número de páginas, trabajando más como una vista de lista. Cuando las páginas no son visibles para el usuario, su fragmento completo puede ser destruido, solo manteniendo el estado guardado de ese fragmento. Esto le permite al buscapersonas aferrarse a mucha menos memoria asociada con cada página visitada en comparación con FragmentPagerAdapter a costa de potencialmente más sobrecarga al cambiar de una página a otra.

Al utilizar FragmentPagerAdapter, el host ViewPager debe tener un conjunto de ID válido.

Las subclases solo necesitan implementar getItem (int) y getCount() para tener un adaptador que funcione.

Aquí es un ejemplo implementation of a FragmentStatePagerAdapter pager containing fragments of lists

Cuestiones relacionadas