【问题标题】:What is this blue shadow called?这个蓝色的影子叫什么?
【发布时间】:2015-02-11 08:40:53
【问题描述】:

当视图在视图结束后被拉出时出现的这个蓝色阴影叫什么?出现或消失时是否触发了侦听器?

我已经实现了https://github.com/maurycyw/StaggeredGridView,我想在这个视图组被过度滚动时加载更多的项目。

【问题讨论】:

    标签: android android-viewgroup


    【解决方案1】:

    它被称为 Overscroller。Listview 具有对过度滚动的内置支持。查看setOverscrollMode 和相关方法setOverscrollHeader 和setOverscrollFooter。 ListView 通过覆盖AbsListView.onOverscrolled; 来使用过度滚动的页眉/页脚,如果你想要不同的行为,你可以自己覆盖它来实现它。

    【讨论】:

    【解决方案2】:

    不幸的是,没有现成的库或功能可以实现这一目标。但是有很好的开放库可以适应。

    我的建议是查看SwipeRefreshLayout,它在 Android 支持库中。

    这个 ViewGroup 支持从顶部滑动来提供回调,你可能可以调整它来实现底部滑动。

    文档:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

    源代码: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/java/android/support/v4/widget/SwipeRefreshLayout.java

    编辑: 或者,用滚动监听器实现load more 函数相对容易,它只是一个简单的OnScrollListener,代码如下:

    private long lastRequestTime = 0;
    public void onScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount){
          if (((firstVisibleItem+visibleItemCount) > totalItemCount - 4) &&
             (lastRequestTime + 1000 < System.currentTimeMillis())) {
             lastRequestTime = System.currentTimeMillis();
             // load more ...
          }
    }
    

    【讨论】:

    • 我使用 goonerdroid 的想法实现了它...非常感谢您的帮助。我有这个滑动刷新布局来刷新视图。
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 2011-09-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多