¿Cuál es el papel de "isViewFromObject (View view, Object object)" en FragmentStatePagerAdapter?
Estoy usando un FragmentStatePagerAdapter
con mi View Pager. El Fragmento devuelto no se muestra en la pantalla si isViewFromObject (View view, Object object)
devuelve false
. ¿Porqué es eso?
El programador doc dice Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int). This method is required for a PagerAdapter to function properly.
Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int). This method is required for a PagerAdapter to function properly.
Pero no estoy claro con esta definición.
- Actualizar el fragmento actual en FragmentPagerAdapter
- Manejo de PagerTitleStrip haga clic en compatibilidad Fragment-based ViewPager
- Anfitrión de múltiples fragmentos en viewpager
- Android ViewPager Con animación diferente como acercar, atenuarse, etc
- Reemplazar la posición de los fragmentos dentro de ViewPager
- Cómo iniciar la actividad en una nueva ventana Utilización de WebView?
- Outofmemeoryerror (viewpager + visiones de imagen)
- ViewPager con fragmentos - onPause (), onResume ()?
- El atributo namespace de herramientas para mostrar el diseño en ViewPager en tiempo de diseño
- Calendario y PagerAdapter - Vistas ilimitadas
- Visualización de varias páginas en ViewPager, posición incorrecta
- ViewPager y OnItemClickListener en ListView
- ¿Cómo desplazar la vista web horizontalmente dentro de ViewPager?
El método instantiateItem(ViewGroup, int)
devuelve Object
para una vista en particular. PagerAdapter
implementación de PagerAdapter
considera este Object
como un valor de key
cuando viewpager cambia una página.
Por lo tanto, si devolvemos la vista desde instantiateItem(ViewGroup, int)
, entonces nuestra key
para esa página se convierte en la vista misma. Podemos comprobar la return view == object;
Desde isViewFromObject (View view, Object object)
que siempre devolverá true
y nuestras páginas mostrarán:
public boolean isViewFromObject(View view, Object object) { return view == object; }
Más información sobre el post https://stackoverflow.com/a/16772250/1994950 :
Cuando desliza ViewPager
obtiene la posición de la vista desde la matriz o la ejemplifica y compara esta vista con los niños de ViewPager
con el método de los adaptadores public boolean isViewFromObject(View view, Object object)
. Ver que es igual a objeto se muestra al usuario en ViewPager
. Si no hay ninguna vista, se mostrará la pantalla en blanco.
Aquí está el método ViewPager
donde se compara la vista con el objeto:
ItemInfo infoForChild(View child) { for (int i=0; i<mItems.size(); i++) { ItemInfo ii = mItems.get(i); if (mAdapter.isViewFromObject(child, ii.object)) { return ii; } } return null; }
- ¿Cómo puedo obtener el contexto de la aplicación de un servicio de Android?
- Compartir Bitmap () en android para twitter, facebook, correo