Вот оно:
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);
}
}
Вы можете использовать myScrollView в макете XML или создать его экземпляр в своем коде.Подсказка: с кодом выше, если пользователь попадает в конец списка 10 раз чаще, ваш код будет выполняться 10 раз.В некоторых случаях, например, когда вы хотите загрузить данные с удаленного сервера для обновления списка, такое поведение будет нежелательным (скорее всего).попытайтесь предсказать нежелательные ситуации и избегайте их.
Подсказка 2: иногда подходящее время ближе к концу списка - подходящее время для запуска вашего сценария.например, пользователь читает список статей и приближается к концу.тогда вы начинаете загружать больше, прежде чем список заканчивается.Для этого просто сделайте это, чтобы выполнить свою цель:
if(d<=SOME_THRESHOLD) {}