Aquí está:
public class myScrollView extends ScrollView
{
public myScrollView(Context context)
{
super(context);
}
public myScrollView(Context context, AttributeSet attributeSet)
{
super(context,attributeSet);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
View view = (View)getChildAt(getChildCount()-1);
int d = view.getBottom();
d -= (getHeight()+getScrollY());
if(d==0)
{
//you are at the end of the list in scrollview
//do what you wanna do here
}
else
super.onScrollChanged(l,t,oldl,oldt);
}
}
Puede utilizar myScrollView en el diseño xml o crear una instancia en yo código de ur Sugerencia: con el código anterior si el usuario llega al final de la lista 10 veces con frecuencia, su código se ejecutará 10 veces. En algunos casos, como cuando desea cargar datos desde un servidor remoto para actualizar su lista, ese comportamiento sería indeseable (probablemente). tratar de predecir situaciones indeseadas y evitarlas.
Sugerencia 2: a veces acercarse al final de la lista puede ser el momento adecuado para dejar que se ejecute el script. por ejemplo, el usuario está leyendo una lista de artículos y se está acercando al final. luego empiezas a cargar más antes de que termine la lista. Para ello, basta con hacer esto para cumplir con su objetivo:
if(d<=SOME_THRESHOLD) {}
Como ScrollView solo puede tener un hijo, donde está seguro de que hay uno: if (scrollView.getScrollY() + scrollView.getHeight()> = scrollView.getChildAt (0) .getMeasuredHeight()) {/ * se han desplazado to bottom * /} – Tom
¿Se colocó esto en un método? ¿Cómo se implementó este código? –
@ItzHoudini Hice esto tan genérico como sea posible para que pueda usarlo de la forma que desee. – sanna