Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: ListView.getScrollY () – ¿funciona?

Lo estoy utilizando, pero siempre devuelve 0, aunque he recorrido hasta el final de la lista.

  • Cómo personalizar la barra de acciones contextuales utilizando appCompat en el diseño de materiales
  • String codificada "row three", debería usar @string resource
  • No se puede ejecutar android / sdk / build-tools / 23.0.2 / aapt
  • FloatingActionButton con SnackBar y CoordinatorLayout no funcionará con proguard
  • Uso de Plurals termina en ResourcesNotFoundException
  • Incluyendo list_content en el diseño de lista para conservar la funcionalidad ListFragment
  • Cree programaticamente TextView con elipsis
  • Cómo obtener RegistrationID usando GCM en android
  • Cómo establecer sólo un valor numérico para edittext en android?
  • Mantenga la cámara libgdx dentro de los límites cuando realice panorámicas y haga zoom
  • Envío de mensajes a través de WhatsApp
  • Cómo depurar BOOT_COMPLETE radiodifusión receptor "Fuerza Close" se bloquea?
  • 2 Solutions collect form web for “Android: ListView.getScrollY () – ¿funciona?”

    GetScrollY () es realmente un método en View, no en ListView. Se refiere a la cantidad de desplazamiento de toda la vista, por lo que casi siempre será 0.

    Si desea saber hasta dónde se desplaza el contenido de ListView, puede utilizar listView.getFirstVisiblePosition ();

    Funciona, devuelve la parte superior de la parte desplazada de la vista en píxeles desde la parte superior de la vista visible. Consulte la documentación getScrollY () . Básicamente, si su lista está ocupando la vista completa, siempre obtendrá 0, porque la parte superior de la parte desplazada de la lista siempre está en la parte superior de la pantalla.

    Lo que quieres hacer para ver si estás al final de una lista es algo como esto:

    public void onCreate(final Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.main); // The list defined as field elswhere this.view = (ListView) findViewById(R.id.searchResults); this.view.setOnScrollListener(new OnScrollListener() { private int priorFirst = -1; @Override public void onScroll(final AbsListView view, final int first, final int visible, final int total) { // detect if last item is visible if (visible < total && (first + visible == total)) { // see if we have more results if (first != priorFirst) { priorFirst = first; //Do stuff here, last item is displayed, end of list reached } } } }); } 

    La razón del contador priorFirst es que a veces los eventos de desplazamiento se pueden generar varias veces, por lo que sólo es necesario reaccionar a la primera vez que se alcanza el final de la lista.

    Si está intentando hacer una lista de crecimiento automático, sugeriría este tutorial .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.