¿Es posible fusionar stickylistviewheader con crisbanes pulltorefresh?

Estoy construyendo una aplicación donde pulltorefresh y stickylistHeaders son need.i han implementado el pulltorefresh en la aplicación, pero no soy capaz de hacerlo funcionar con stickyListHeaders.Is es posible fusionar las dos bibliotecas? ¿O hay alguna alternativa? ¿Ideas?

Mi implementación se rompió después de actualizar ambas bibliotecas, también. Esta es mi solución rápida para que funcione de nuevo. ¡Cualquier sugerencia y mejora son bienvenidas!

  1. Hacer una nueva clase y extender el SticklistListHeadersListView e implementar la interfaz ViewDelegate de ActionBar-PullToRefresh:

    public class PtrStickyListHeadersListView extends StickyListHeadersListView implements ViewDelegate { public PtrStickyListHeadersListView(Context context) { super(context); } public PtrStickyListHeadersListView(Context context, AttributeSet attrs) { super(context, attrs); } public PtrStickyListHeadersListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean isReadyForPull(View view, float v, float v2) { View childView = getWrappedList().getChildAt(0); int top = (childView == null) ? 0 : childView.getTop(); return top >= 0; } } 
  2. Y en su layout.xml reemplazar

     <se.emilsjolander.stickylistheaders.StickyListHeadersListView ...> 

    con

     <com.yourapp.package.foo.PtrStickyListHeadersListView ...> 
  3. Y por último, agregue el delegado: ( listView es una instancia de PtrStickyListHeadersListView)

     ActionBarPullToRefresh.from(getActivity()) // We need to insert the PullToRefreshLayout into the Fragment 's ViewGroup .insertLayoutInto(viewGroup) // We need to mark the ListView and it 's Empty View as pullable // This is because they are not dirent children of the ViewGroup .theseChildrenArePullable(R.id.your_list_id) // We can now complete the setup as desired .listener(...) .useViewDelegate(PtrStickyListHeadersListView.class, listView) .setup(mPullToRefreshLayout); 

Similar a la respuesta de Helden, también puedes lograr esto usando una clase interna anónima sin extender StickyListHeadersListView

  myList = (StickyListHeadersListView) v.findViewById(R.id.your_list_id); ActionBarPullToRefresh.from(getActivity()) .allChildrenArePullable() .listener(this) .useViewDelegate(StickyListHeadersListView.class, new ViewDelegate() { @Override public boolean isReadyForPull(View view, float v, float v2) { return ... //check if list is scrolled to the top or not } }) .setup(mPullToRefreshLayout); 
  • Chris Banes PullToRefreshListView con el error del adaptador personalizado
  • Tire para actualizar para Android y Phonegap
  • Android: Tire para actualizar para GridView
  • FragmentManager reemplazar fragmentos sin llamar onPause () onDestroy () para el fragmento antiguo
  • Android pull-to-refresh mostrar el pie de la carga al inicio
  • La aplicación arroja java.lang.StackOverflowError Excepción en la actividad
  • ¿Puedo usar Pull para actualizar sin utilizar ScrollView / ListView?
  • ¿Por qué necesitamos actualizar la aplicación para móviles?
  • Android - ¿cómo puedo saber cuando gridview ha llegado al fondo?
  • Tire para actualizar para GridView en Android
  • Tire para actualizar y cargar en listview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.