在我的 android 应用程序中,我有一个 listview。它是从一个 json 文件填充的,我在将一个 rest api 发送到服务器后得到了这个文件。现在我想一次只显示列表中的 20 个项目。(一次只能从服务器获取 20 个项目)现在说更多要显示的项目我想向下拖动列表视图以填充更多。像 gmail android 应用程序。
任何人都可以告诉我执行此操作的正确程序吗?如何实现具有视觉效果的此类功能。
请帮忙
在我的 android 应用程序中,我有一个 listview。它是从一个 json 文件填充的,我在将一个 rest api 发送到服务器后得到了这个文件。现在我想一次只显示列表中的 20 个项目。(一次只能从服务器获取 20 个项目)现在说更多要显示的项目我想向下拖动列表视图以填充更多。像 gmail android 应用程序。
任何人都可以告诉我执行此操作的正确程序吗?如何实现具有视觉效果的此类功能。
请帮忙
一个非常简单的方法:您可以创建一个扩展 ListView 小部件的自定义组件。在这个自定义组件中,您可以在用户触摸屏幕时实现您的逻辑。所以你必须覆盖onTouchEvent(MotionEvent event)
. 类似的东西
@Override
public boolean onTouchEvent(MotionEvent event) {
//System.out.println("First ["+this.getFirstVisiblePosition()+"]");
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: {
if ( ( y - startY) > THRESHOLD && STATE_REFRESH_ENABLED && !STATE_REFRESHING ) {
if (listener != null) {
listener.onRefresh();
STATE_REFRESHING = true;
}
}
}
break;
case MotionEvent.ACTION_DOWN: {
startY = y;
STATE_REFRESH_ENABLED = getFirstVisiblePosition() == 0; // We are on the first element so we can enable refresh
}
case MotionEvent.ACTION_UP: {
STATE_REFRESHING = false;
}
}
return super.onTouchEvent(event);
}
并实现一个监听器接口,以便在需要刷新列表视图时获得通知。你可以看看我的博客,我详细描述了如何创建这个组件。
Chris Banes(为 android 实现了最好的 pull to refresh 组件的同一个人)也实现了类似 Pull To Refresh 的 GMail。
你可以在这里找到
请注意,此项目仍在开发中,因此当前 API 可能会更改。