¿Funciona PullToRefresh con FragmentPagerAdapter?

Bibliotecas:

  • Https://github.com/chrisbanes/Android-PullToRefresh
  • Https://github.com/JakeWharton/Android-ViewPagerIndicator

En el ejemplo PullToRefreshListInViewPagerActivity sólo funciona con PageAdapter.

No pude encontrar una manera de ponerlo a trabajar con FragmentPageAdapter .

Muestra:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ptr_list_in_vp); mViewPager = (ViewPager) findViewById(R.id.vp_list); mViewPager.setAdapter(new ListViewPagerAdapter()); } private class ListViewPagerAdapter extends PagerAdapter { @Override public View instantiateItem(ViewGroup container, int position) { Context context = container.getContext(); PullToRefreshListView plv = (PullToRefreshListView) LayoutInflater.from(context).inflate( R.layout.layout_listview_in_viewpager, container, false); ListAdapter adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, Arrays.asList(STRINGS)); plv.setAdapter(adapter); plv.setOnRefreshListener(PullToRefreshListInViewPagerActivity.this); // Now just add ListView to ViewPager and return it container.addView(plv, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); return plv; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public int getCount() { return 3; } } @Override public void onRefresh(PullToRefreshBase<ListView> refreshView) { new GetDataTask(refreshView).execute(); } private static class GetDataTask extends AsyncTask<Void, Void, Void> { PullToRefreshBase<?> mRefreshedView; public GetDataTask(PullToRefreshBase<?> refreshedView) { mRefreshedView = refreshedView; } @Override protected Void doInBackground(Void... params) { // Simulates a background job. try { Thread.sleep(4000); } catch (InterruptedException e) { } return null; } @Override protected void onPostExecute(Void result) { mRefreshedView.onRefreshComplete(); super.onPostExecute(result); } } } 

Puede agregar un ListFragment al FragmentPageAdapter (o FragmentStatePageAdapter) y agregar la función Pull-To-Refresh en él.

El repositorio Android-PullToRefresh tiene un ejemplo sobre ListFragment .

El sitio web de desarrolladores de Android tiene un código de ejemplo sobre cómo crear FragmentPagerAdapter o FragmentStatePagerAdapter .

También puede echar un vistazo a mi proyecto de prueba: https://github.com/caiguanhao/FSPAtest

  • Aparato de vista de Android con indicador de página
  • Tirar para actualizar y loadmore listview como facebook
  • Pestañas de ViewPagerIndicator: Iconos sobre el texto
  • Cambiar el nombre de página en Android Viewpager
  • Cambiar dinámicamente los títulos de ViewPagerIndicator
  • Android ViewPager con puntos inferiores
  • ViewPagerIndicator CirclePageIndicator no se puede instanciar
  • ViewPagerIndicator no muestra el texto del título
  • ¿Cómo cambiar el fondo de la pestaña en las pestañas de viewpagerindicator?
  • Divisor no funciona para TitlePageIndicator con viewpagerindicator & actionbarsherlock
  • Fragmento de actualización de Android ViewPager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.