跳转至

自动下拉刷新

Net属于低耦合框架, 自动下拉刷新需要依赖第三方组件: BRV(点击链接按文档依赖)

使用固定版本号替换+符号

implementation 'com.github.liangjingkanji:BRV:+'

当然如果自己处理下拉刷新也是可以的, Net可以仅仅作为网络框架存在

创建PageRefreshLayout

<com.drake.brv.PageRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/page"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.fragment.PushRefreshFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_push"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</com.drake.brv.PageRefreshLayout>

创建列表

rv_push.linear().setup {
    addType<String>(R.layout.item_list)
}

创建网络请求

page.onRefresh {
    scope {
        // 请求到数据设置到RecyclerView
        rv_push.models = Get<ListModel>("list").await().data.list
    }
}.autoRefresh()


注意高亮处使用的是scope而不是其他作用域, 只能使用scope, 否则无法跟随PageRefreshLayout生命周期等功能


  • 使用上和自动缺省页相似
  • BRV同样属于具备完善功能独立的RecyclerView框架
  • BRV的下拉刷新扩展自SmartRefreshLayout_v2, 支持其全部功能且更多

生命周期

生命周期 描述
开始 PageRefreshLayout执行showLoading/autoRefresh后触发onRefresh, 然后开始网络请求
结束 PageRefreshLayout被销毁(例如其所在的Activity或Fragment被销毁), 网络请求自动取消