Actualizar Actualización de Android Desplácese hasta actualizar

He implementado un despliegue refrescar diseño para mi vista de cuadrícula y funciona perfectamente si me tire (desplazamiento) hacia abajo para la actualización a ser llamado.

Sin embargo, estoy tratando de averiguar cómo actualizar cuando el usuario se desplaza hacia arriba. Así que cuando el usuario alcanza el último de los elementos de la cuadrícula (mi límite es 10) así que cuando el usuario ve todos los diez y luego tira hacia arriba o trata de seguir para desplazarse ¿cómo puedo actualizar entonces?

Cualquier ayuda es apreciada.

Así que las personas o bien: no saben la respuesta a esta pregunta o b: no están dispuestos a compartir el conocimiento.

De todos modos después de mucho tiempo me propuse mi propia solución. He añadido un oyente de desplazamiento a mi cuadrícula, y calculado cuando me desplacé a la parte inferior de la pantalla, en este momento recuerdo el método onRefresh () desde el golpe para actualizar …

EDIT para agregar más información

Por lo tanto, después de hacer algunas investigaciones para calcular cuándo el usuario llegó a la parte inferior de una vista de la cuadrícula seguí preguntas como ésta y otras para conseguir eso. A continuación se muestra el código que tuve que modificar para que funcione con la funcionalidad de actualización nativa. Mis alteraciones fueron para evitar refrescarse constante. Así que incluido en mi declaración if es un cheque que no está actualizando, así que cuando llegué a la parte inferior se actualizó, pero no tenía ese cheque por lo que constantemente actualizado. Entonces tuve que hacer un cheque contra la cantidad total de elementos en mi cuadrícula, como cuando el usuario alcanzó el último elemento (último elemento) la aplicación también se mantuvo refrescante y no había nada para romper el ciclo. Esperemos que esto sea de alguna ayuda …

worldBeersGrid.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { } @Override public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { int position = firstVisibleItem+visibleItemCount; int limit = totalItemCount; int totalItems = sharedpreferences.getInt("WORLD ITEM COUNT", 0); Log.i("TOTAL WORLD ITEMS", String.valueOf(totalItems)); Log.i("LIMIT :::::::::::: ", String.valueOf(limit)); Log.i("POSITION ::::::::::::", String.valueOf(position)); Log.i("REFRESHING :::::::::::::::", String.valueOf(swipeRefreshLayout.isRefreshing())); if(position>=limit && totalItemCount>0 && !swipeRefreshLayout.isRefreshing() && position <totalItems){ swipeRefreshLayout.setRefreshing(true); //In the below method I made my call to my ws... onRefresh(); } } }); 

Ver mi respuesta en stackoverflow

SwipeRefreshLayout de la versión 21 de la Biblioteca de soporte de Android no admite la extracción desde la parte inferior. He hecho la modificación SwipeRefreshLayoutBottom con se basa en el código original de SwipeRefreshLayout. Se basa totalmente en el código original de Google con sólo la inversión de coordenadas y el nuevo método canChildScrollDown. Todas las modificaciones están marcadas como TODO.

Repositorio de Bitbucker

Usted intenta de esta manera

 listView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { boolean enable = false; if(listView != null && listView.getChildCount() > 0){ // check if the first item of the list is visible boolean firstItemVisible = listView.getFirstVisiblePosition() == 0; // check if the top of the first item is visible boolean topOfFirstItemVisible = listView.getChildAt(0).getTop() == 0; // enabling or disabling the refresh layout enable = firstItemVisible && topOfFirstItemVisible; } swipeRefreshLayout.setEnabled(enable); }}); 

Otra respuesta si alguien sigue interesado. Para actualizar al desplazar hacia abajo, he implementado el onRefreshListerner () en el swipeRefreshLayout.

  swipeRefreshLayout = (SwipeRefreshLayout) getView().findViewById(R.id.swipe_messages); swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { swipeRefreshLayout.setRefreshing(true); ( new Handler()).postDelayed(new Runnable() { @Override public void run() { refresh(); } }, 1000); } }); 

Pero para actualizar al desplazarse hacia arriba y sólo cuando llegué al final de la lista, he implementado OnTouchListener () en la lista que incluye el swipeRefreshLayout.setRefreshing (true) para iniciar el efecto:

  listView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == android.view.MotionEvent.ACTION_UP) { if (listView.getLastVisiblePosition() == listView.getAdapter().getCount() -1 && listView.getChildAt(listView.getChildCount() - 1).getBottom() <= listView.getHeight()) { swipeRefreshLayout.setRefreshing(true); ( new Handler()).postDelayed(new Runnable() { @Override public void run() { refresh(); } }, 1000); } } return false; } }); 

Por supuesto tienes que deshabilitar el swipeRefreshLayout después de actualizar tu lista:

 public void refresh (){ //Do something neat here to refresh your list swipeRefreshLayout.setRefreshing(false); } 

He utilizado esta respuesta para saber cuándo llegué al final de la lista:

https://stackoverflow.com/a/10235887/6144027

  • ¿Cómo solicitar datos de la base de datos de firebase de nuevo?
  • SwipeRefreshLayout con NestedScrollView y LinearLayout
  • La nueva versión de SwipeRefreshLayout causa un dibujo erróneo de vistas
  • SwipeRefreshLayout en API 21
  • SwipeRefreshLayout está oculto en vacío RecyclerView
  • Desplazamiento hacia abajo activa la actualización en lugar de revelar la barra de herramientas
  • Problemas al integrar EnhancedListView y SwipeRefreshLayout
  • Indicador de actualización de Android SwipeRefreshLayout no visible
  • Cómo detener ScrollView desde el desplazamiento hasta la parte inferior de la página cargada actual en WebView
  • SwipeRefreshLayout con emptyView, actualizar el hilandero parpadea
  • Cómo añadir una sugerencia de texto a Android SwipeRefreshLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.