0

在我的 android 应用程序中,我有一个 listview。它是从一个 json 文件填充的,我在将一个 rest api 发送到服务器后得到了这个文件。现在我想一次只显示列表中的 20 个项目。(一次只能从服务器获取 20 个项目)现在说更多要显示的项目我想向下拖动列表视图以填充更多。像 gmail android 应用程序。

任何人都可以告诉我执行此操作的正确程序吗?如何实现具有视觉效果的此类功能。

请帮忙

4

2 回答 2

0

一个非常简单的方法:您可以创建一个扩展 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);
}

并实现一个监听器接口,以便在需要刷新列表视图时获得通知。你可以看看我的博客,我详细描述了如何创建这个组件。

于 2013-08-20T08:42:51.170 回答
0

Chris Banes(为 android 实现了最好的 pull to refresh 组件的同一个人)也实现了类似 Pull To Refresh 的 GMail。

你可以在这里找到

请注意,此项目仍在开发中,因此当前 API 可能会更改。

于 2013-08-20T08:38:45.777 回答