SwipeRefreshLayout - 从底部下拉刷新

32

有没有一种方法可以使用SwipeRefreshLayout在从底部拉动ListView时进行刷新?

我已经创建了从顶部拉动的功能,但我还需要从底部拉动。有许多关于如何创建从顶部拉动的教程,但我找不到任何关于从底部拉动的教程。


3
也许是因为你搜索的内容不对?你所描述的是一个无限滚动列表视图。 - Xaver Kapeller
5个回答

19

来自Android Support Library版本21的SwipeRefreshLayout不支持从底部拉取。 我对基于原始SwipeRefreshLayout代码的SwipeRefreshLayoutBottom进行了修改。 它完全基于原始的Google代码,只是坐标的翻转和canChildScrollDown方法的重写实现。所有修改都标记为TODO。

Bitbucker存储库


3
谢谢AndreyICE。我将您的代码移植到了一个Android Studio 1.2项目中,并创建了一个aar库。该项目还包括gradle构建。可在https://github.com/JohannBlake/SwipeRefreshLayoutBottom找到。 - Johann
这个答案应该被接受!谢谢AndreyICE。 - jobernas
1
不应该这样做。提问者需要上下两个方面的答案。 - Andrew Gallasch
1
如果您将SwipeRefreshLayoutBottom.java文件放置在Android.support.v4.widget包中,原始的支持库中的package-private类CircleImageView和MaterialProgressDrawable将可用。因此,您无需保留这些类的副本。 - Dmide

17

1
很棒的组件。只有一个问题,旋转箭头动画有时无法正确渲染,箭头不显示。 - Selçuk Cihan
如果您对问题确信无疑,可以在仓库中创建一个问题。 - Morteza Rastgoo
这是一个很酷的布局,但是有一些bug。例如:向上拉到底部,然后向下拉而不放开手指,或者有时刷新图标会出现奇怪的情况。 - Na Pro

3

如果您的情况需要,omadahealth/SwipyRefreshLayout库一定是您的答案。

以下代码可以让您的Recycler view从底部向上拉以进行刷新

<com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/refresh_layout"
    style="@style/View_MatchParent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    app:srl_direction="bottom"
    >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        style="@style/View_MatchParent"
        android:layout_height="wrap_content"
        android:clipToPadding="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout>

0

-6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接