Wie erkennt man Android ListView Scrolling gestoppt?

Ich versuche, etwas nach dem Scrollen loszulegen.So, ich habe versucht, mit OnScrollListener#onScrollStateChanged(SCROLL_STATE_IDLE) zu erkennen, wann der Scrolling gestoppt wurde (entweder TOUCH_SCROLL or FLING ) (bei 1,5 läuft es wie ich erwarte). Aber wenn es auf 2.0 läuft, kann onScrollStateChanged das Ereignis nach dem Freigeben des Fingers nicht empfangen.Ist es einen Rückruf oder irgendwie, um dieses Ereignis zu erkennen?

  • Deaktivieren Sie die Option pan / zoom in com.google.android.maps.MapView
  • Wie man eine GCM-Registrierungs-ID in MySQL eindeutig speichert
  • Kann nicht auf zzbql in Firebase zugreifen
  • Adb-Befehl zum Erhalten der IP-Adresse, die vom Operator zugewiesen wurde
  • Stoppen Sie Android Studio von der Support-Bibliothek
  • So legen Sie Text von TextView fest?
  • Wie läuft man (nicht nur installieren) eine Android-Anwendung mit .apk-Datei?
  • Android: Erstellen Sie eine einzelne Aufgabe mit mehreren Anwendungen 'Aktivitäten (Lauchmode Problem)
  • Android Studio 2.0 Builds sind wirklich langsam
  • Best Practice, um Benutzerstandort kontinuierlich zu melden
  • Hintergrundprozesse, die zufällig sterben, während App auf Samsung S3 läuft
  • Neustart Service für App auf SD-Karte, wenn SD-Karte wieder montiert ist
  • 2 Solutions collect form web for “Wie erkennt man Android ListView Scrolling gestoppt?”

    Versuchen Sie es mit setOnScrollListener und implementieren Sie die onScrollStateChanged mit scrollState == 0 … tun, was Sie tun müssen …

     setOnScrollListener(new OnScrollListener() { public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub } public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { Log.i("a", "scrolling stopped..."); } } }); 

    Der Trick ist, um zu verfolgen, wenn der Benutzer flinging und wenn sie nicht sind. Es scheint, als ob es um die einzige Unterscheidung geht, die Sie machen können, weil, wie Sie gesagt haben, die Übergänge vom Scrollen mit einem Finger zum Leerlauf nicht aufgezeichnet werden. Hier ist was ich rede:

     public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState != OnScrollListener.SCROLL_STATE_FLING) { flinging = false; int count = view.getChildCount(); for (int i = 0; i < count; i++) { View convertView = view.getChildAt(i); Recipe recipe = (Recipe) convertView.getTag(); ImageView image = (ImageView) convertView.findViewById(R.id.icon); if (recipe != null && recipe.getImageURL() != null) { ImageLoader.loadImage(this, image, recipe.getImageURL()); } } } else { flinging = true; } } 

    Und dann in der listView adapter:

     public View getView(int position, View convertView, ViewGroup parent) { // Bunch of code.... if (!flinging) { ImageLoader.loadImage(BrowseRecipes.this, image, recipe.getImageURL()); } } 

    Also, anstatt auf die Veränderung im Hörer zu reagieren, lade einfach die Bilder (oder was auch immer du tun musst, das ist intensiv) an erster Stelle, solange kein Flinging los ist.

    Das ist alles aus meinem projekt herausgekommen: https://github.com/pkulak/mealfire_android

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.