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.

  • Agregar una barra de desplazamiento vertical a un AlertDialog en Android?
  • Chrome Browser para Android ya no admite -webkit-overflow-scrolling? ¿Hay alguna alternativa?
  • WebView saltar para anclar utilizando loadDataWithBaseUrl
  • Android Listview reduce la velocidad de desplazamiento
  • Android no se desplaza correctamente en el foco de entrada si no elemento del cuerpo
  • Desplazamiento en listview con altura de celda diferente
  • Android scrollview horizontal se comportan como el iPhone (paginación)
  • 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.