在向下或向上拖动列表视图,如gmail或facebook

时间:2013-08-20 08:18:26

标签: android android-listview

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

任何人都可以告诉我这样做的正确程序。我如何通过视觉效果实现这种功能。

请帮助

2 个答案:

答案 0 :(得分:0)

Chris Banes(实现Android最佳刷新组件的同一个人)也实现了像Pull To Refresh这样的GMail。

你可以找到它here

请注意,此项目仍处于开发阶段,因此当前的API可能会发生变化。

答案 1 :(得分: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);
}

实现一个侦听器接口,以便在刷新listview时得到通知。 您可以查看我的blog,其中详细介绍了如何创建此组件。