Cómo detectar la posición de la nestedscrollview de desplazamiento android en la parte inferior?

Sólo quiero detectar la posición de la nestedscrollview de desplazamiento android en la parte inferior, y la función de llamada. Mi código es:

scroll.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { int totalHeight = scroll.getChildAt(0).getHeight(); int scrollY = scroll.getScrollY(); Log.v("position","totalHeight="+totalHeight+"scrollY="+scrollY); if (scrollY==totalHeight ) { getPlaylistFromServer("more"); } } }); 

Pero totalheight no es igual que MAX ScrollY. Como arreglarlo ?

Establecer setOnScrollChangeListener en un NestedScrollView params para obtener

  • NestedScrollView v (padre con desplazamiento)
  • Int scrollY
  • Int oldScrollY

Para detectar si el desplazamiento está en la parte inferior, es necesario obtener el valor de la altura del contenido v.getChildAt(0).getMeasuredHeight() y comparar el desplazamiento actual sobre la altura del padre, si tiene el mismo valor, lo Significa que ha llegado al final.

Puede obtener la altura con la vista padre con v.getMeasuredHeight()

 NestedScrollView scroller = (NestedScrollView) findViewById(R.id.myScroll); if (scroller != null) { scroller.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { @Override public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { if (scrollY > oldScrollY) { Log.i(TAG, "Scroll DOWN"); } if (scrollY < oldScrollY) { Log.i(TAG, "Scroll UP"); } if (scrollY == 0) { Log.i(TAG, "TOP SCROLL"); } if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) { Log.i(TAG, "BOTTOM SCROLL"); } } }); } 

Sé que es tarde, pero … intente de esta manera.

 scroll.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { View view = (View) scroll.getChildAt(scroll.getChildCount() - 1); int diff = (view.getBottom() - (scroll.getHeight() + scroll .getScrollY())); if (diff == 0) { getPlaylistFromServer("more"); } } }); 

Codificación feliz

  • NestedScrollView se desplaza hacia abajo cuando el contenido se llena
  • NestedScrollView fling detener el error en Nougat (API 25)
  • Habilitar scroll intertial en NestedScrollView (Android Studio)
  • NestedScrollView no se desplazará hasta el final cuando se utiliza con CollapsingToolbarLayout
  • Cómo poner RecyclerView dentro de NestedScrollView?
  • Match_parent no funciona para ListView, si ListView está dentro de NestedScrollView
  • Ocultar FAB en NestedScrollView al desplazarse
  • NestedScrollView y WebView
  • NestedScrollview no comenzará desde arriba
  • Vista de Scrollview anidada + Recycler
  • RecyclerView dentro de NestedScrollView onBindViewHolder llamando para todo el tamaño getItemCount
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.