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 ?
- Prueba Espresso NestedScrollView - "Error al ejecutar 'desplazamiento a' en vista 'con id:"
- Recyclerview con el interior scrollview anidado?
- Android - CoordinatorLayout / NestedScrollView / Hide-Show Toolbar / Problema con WebView
- Fling suavemente AppBarLayout con NestedScrollView usando AppBarLayout.Behavior
- Webview dentro de NestedScrollView causa problema de altura
- Recylerview no visible dentro de scrollview o nestedScrollview
- Emita el desplazamiento WebView en NestedScrollView Android 2.3 o menos
- Cómo usar la barra de desplazamiento y rápido Desplácese a NestedScrollView
- ListView no se expande dentro de NestedScrollView
- RecyclerView no recicla vistas cuando lo usa dentro de NestedScrollView
- La vista Recyclerview no funciona con setNestedScrollingEnabled y nunca recicla ninguna vista
- Ocultar un botón de acción flotante de otro diseño
- Cómo puedo crear un diseño nestedScroll como este?
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