Actualización de fragmentos / vistas en viewpager con fragmentStatePagerAdapter
Necesito ayuda con mi problema de actualizar páginas mientras uso viewpager. Estoy usando un viewpager simple con FragmentStatePagerAdapter. Todo lo que quiero hacer es obtener acceso al fragmento / vista actual para poder actualizar algunas vistas de texto en mi fragmento / vista. Busqué alrededor en el foro y llegué a conocer algunas cosas – Una de las maneras de manejar esto es mediante la configuración de la etiqueta en instantiateItem () llamar de nuevo del adaptador y recuperar la vista de findViewbyTag. No pude entender cómo implementar esto y tampoco estoy seguro si eso funcionará para FragmentStatePagerAdapter. – Exploré otras opciones sugeridas en varios foros, pero no puedo hacerlas funcionar.
Mi código es mucho igual que en un androide http://developer.android.com/training/animation/screen-slide.html . Los componentes básicos son los mismos (Fragment activity xml con algunos componentes de visualización incluyendo textview, viewpager xml con sólo un pager de vista en él, una clase Fragment y la clase FragmentActivity principal). En mi clase FragmentActivity He añadido un pageChangelistener a mi viewpager para poder hacer mis cambios de textview durante onPageSelected ().
- ¿Es posible hacer esta animación de pantalla Android con un ViewPager?
- Android Viewpager tinder como UI con la apariencia de la pila de tarjetas 3D
- ¿Ciclo de vida de un ViewPager y BackStack reemplazados?
- ¿Cómo puedo poner títulos en ViewPager usando fragmentos?
- PagerTitleStrip no muestra títulos en la primera página de visualización, los títulos sólo se dibujan después de pasar a otra página
Cualquier ayuda es apreciada.
Agregar el código para referencia.
Public class myActivity extends FragmentActivity //Variable declarations protected void onCreate(Bundle savedInstanceState) { ViewPager mPager = (ViewPager) findViewById(R.id.pager); mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); mPager.setAdapter(mPagerAdapter); View CurrView; OnPageChangeListener pageChangelistener = new OnPageChangeListener() { @Override public void onPageSelected(int pageSelected) { doTextViewChnges();//access the text view and update it based on pageSelected ---THIS IS WHERE I AM STUCK IN TRYING TO GET THE TEXTVIEW IN MY CURRENT FRAGMWNT/VIEW------- } mPager.setOnPageChangeListener(pageChangelistener); } private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { public ScreenSlidePagerAdapter(android.support.v4.app.FragmentManager fm) { super(fm); } @Override public android.support.v4.app.Fragment getItem(int position) { return ScreenSlidePageFragment.create(position, <other parameters I want to pass>); } @Override public int getCount() { return NUM_PAGES; } }
- Utilizar un coordinador para colapsar una imagen a pantalla completa y reemplazarla por viewpager con encabezados
- Control preciso sobre las animaciones de Androids VectorDrawable
- View Pager - ¿Cómo puedo colocar botones fijos encima de él
- Error al crear la aplicación para Android (consulte ActionBarSherlock y ViewPagerTabs) con Ant
- El método getChildFragmentManager () no está definido
- ViewPager & ViewPagerIndicator no muestra nada
- Un solo lado de ViewPager
- No recorte las páginas de ViewPager
En su OnPageChangeListener:
OnPageChangeListener pageChangelistener = new OnPageChangeListener() { @Override public void onPageSelected(int pageSelected) { ScreenSlidePageFragment currentFragment = (ScreenSlidePageFragment) mPagerAdapter.getItem(pageSelected) doTextViewChnges();//access the text view and update it based on pageSelected ---THIS IS WHERE I AM STUCK IN TRYING TO GET THE TEXTVIEW IN MY CURRENT FRAGMWNT/VIEW------- }
Asumo que usted desea tener acceso a sus fragmentos de su actividad y actualizar las vistas. Los fragmentos son las partes de actividades y sus opiniones pueden ser alcanzadas por ellas. Los fragmentos se crean dinámicamente en viewadapters y no hay ninguna manera directa y fácil de Tag ellos. Usted puede simplemente acceder a un fragmento por su número de índice. Primero uno es 0 segundo, uno es 1 y así sucesivamente …
//access your fragment(in your case your first fragment) //this part should be inside your doTextViewChnges() Fragment fragment = (Fragment ) adapterViewPager .getFragment(0); if (fragment != null) { //call a public method inside your fragment to update your text view fragment .updateYourTextView(); }
Editar: dentro de su fragmento crear el siguiente método y actualizar su texto desde allí.
void updateYourTextView() { yourTextView.setText("yourtext"); }
- Vista de desplazamiento horizontal personalizada con selector
- Cómo ejecutar la aplicación Java en Android