Quitar y agregar la página a FragmentPagerAdapter
Estoy utilizando un adaptador de paginación de fragmentos con 5 páginas. Y im que fija el adaptador para ver paginador como abajo
public class xxx extends FragmentPagerAdapter { final int PAGE_COUNT_LOGGED_IN = 6; final int PAGE_COUNT_LOGGED_OUT = 2; TextView oTextView = null; LayoutInflater inflater = null; PagerTabStrip m_oPageTabStrip = null; String m_strTab = null; String[] m_strArray = null; Context m_oContext = null; /** Constructor of the class */ public xxxx (Context context, android.support.v4.app.FragmentManager oFragmentManager) { super (oFragmentManager); m_oContext = context; } /** This method will be invoked when a page is requested to create */ @Override public Fragment getItem(int arg0) { xxxxFragment myFragment = new xxxFragment (); Bundle data = new Bundle(); data.putInt("current_page", arg0+1); myFragment.setArguments(data); return myFragment; } /** Returns the number of pages */ @Override public int getCount() { if (Utility.m_bIsLoggedIn == true) { return PAGE_COUNT_LOGGED_IN; } else { return PAGE_COUNT_LOGGED_OUT; } } @Override public CharSequence getPageTitle(int position) { String strText = " "; switch(position) { case 0: strText = getBaseContext().getString(R.string.ccc); break; case 1: strText = getBaseContext().getString(R.string.bbb); break; case 2: strText = getBaseContext().getString(R.string.bbb); break; case 3: strText = getBaseContext().getString(R.string.bbb); break; case 4: strText = getBaseContext().getString(R.string.bbb); break; case 5: strText = getBaseContext().getString(R.string.Sbbb); break; } }
Y en el fragmento i crear una disposición lineal individualmente para cada página como abajo
- ViewPager + FragmentPagerAdapter dentro de un DialogFragment obtiene "IllegalArgumentException: No se encontró ninguna vista ..."
- Android.support.v4.app.FragmentPagerAdapter no se puede aplicar a android.app.FragmentManager
- No se puede cambiar la etiqueta del fragmento
- Desplazamiento no funciona en android ViewPager con FragmentPagerAdapter
- ¿Cuándo se llama a getItem de FragmentPagerAdapter?
bbb.m_oSharedPage = (LinearLayout) LayoutInflater.from(Utility.m_oService).inflate(R.layout.viewpage, null); iView = Utility._YOURS_SHARED; oCurrentPage = .m_oSharedPage;
Y estoy fijando el adaptador como abajo
m_oPager.setAdapter(m_oPagerAdapter);
Mi pregunta es cómo puedo agregar y quitar la quinta página dinámicamente … como para algún caso necesito página 5 y algún caso necesito quitar la página 5.
- Cómo hacer que PagerAdapter cargue todas las páginas
- FragmentPagerAdapter con ViewPager y dos Fragmentos. Ir a la primera de la segunda y actualizar el primer texto
- Reemplazar ViewPager con Fragmento - y luego volver a navegar
- Las variables de miembro de fragmento que obtienen null cuando se accede en onPageSelected ()
- Cómo obtener fragmentos existentes cuando se utiliza FragmentPagerAdapter
- GetItem (int) para devolver Listfragment en FragmentPagerAdapter
- ¿Cómo cambiar el color de ActionBar al pasar entre fragmentos (diseño de material)?
- Quitar la página de fragmentos de ViewPager en Android
Tengo algo que podría ayudar, no estoy cambiando el Fragment
, simplemente eliminando y agregándolo de nuevo. Esto sólo cambiará desde la última posición. En otras palabras, si tuviste cinco Fragments
y querías eliminar el tercero, entonces esto no funcionará. No estoy seguro de que esta es la mejor solución, pero aquí es lo que he hecho:
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
Entonces, como una muestra estoy usando un método de agregar y quitar click
:
public void remove(View v) { // Change the count to whatever you would like mSectionsPagerAdapter.setCount(1); // Triggers a redraw of the PageAdapter mSectionsPagerAdapter.notifyDataSetChanged(); } public void add(View v) { // Change the count back to the initial count mSectionsPagerAdapter.setCount(2); // Triggers a redraw of the PageAdapter mSectionsPagerAdapter.notifyDataSetChanged(); }
He añadido un método setCount()
a mi SectionsPagerAdapter
:
public void setCount(int count) { this._count = count; }
Cambió getCount()
y agregó un recuento predeterminado:
private int _count = 2; @Override public int getCount() { return this._count; }
Aquí está mi SectionsPagerAdapter
completo:
public class SectionsPagerAdapter extends FragmentPagerAdapter { private int _count = 2; public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Object instantiateItem(ViewGroup container, int position) { return super.instantiateItem(container, position); } @Override public Fragment getItem(int position) { switch (position) { case 0: return new FragmentOne(); case 1: return new FragmentTwo(); default: return null; } } public void setCount(int count) { this._count = count; } @Override public int getCount() { return this._count; } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return getString(R.string.fragment_title_one).toUpperCase(Locale.ENGLISH); case 1: return getString(R.string.fragment_title_two).toUpperCase(Locale.ENGLISH); } return null; } }
- Cómo jugar el sonido en una llamada telefónica con Android?
- Bitmap comprimido con calidad = 100 tamaño de archivo mayor que original