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.

  • ¿Hay alguien sabe cómo getWindow () en servicio en android?
  • No se puede encontrar R.layout.activity_main
  • Push notificaciones en las 3 plataformas (android, ios, windows phone)
  • Model-View-Presenter y diseño de aplicaciones para Android
  • Android: No se ha encontrado actividad para manejar el error de intención? Cómo va a resolver
  • Setting targetSdkVersion = "13" hace que las actividades ignoren android: configChanges = "orientation" flag
  • Android Image Dialog / Popup mismo tamaño que la imagen y sin frontera
  • Cambiar los textos de los botones de DatePickerDialog
  • NullPointerException que no apunta a ninguna línea en mi código
  • FFMPEG con soporte de codecs de hardware
  • EditText y InputFilter causan la repetición del texto
  • Opciones de SyncAdapter
  • 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.