拉取更多
本章节说的拉取更多不是上拉加载更多, 而是下拉加载更多. 常见的应用场景就是聊天界面下拉取加载历史记录
例如聊天记录界面, 最新的消息在底部, 下拉列表会触发加载下一页. 这种需求在BRV中只需要一行代码(扩展自SmartRefreshLayout)
向下拉取加载更多其实本质上是将rv反转, 再将内容布局反转(此时内容布局就是正常显示的).
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
rv.setup {
addType<Model>(R.layout.item_multi_type_simple)
}
page.upFetchEnabled = true
page.onRefresh {
// 模拟网络请求2秒后成功
postDelayed({
val data = getData()
addData(data) { index <= 2 }
}, 1000)
}.showLoading() // 加载中(缺省页)
}
布局代码
<com.drake.brv.PageRefreshLayout
android:id="@+id/page"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:reverseLayout="true"
app:stackFromEnd="true" />
<!--stackFromEnd=true 防止UpFetch时数据不满一屏幕的时候, 对齐底部而不是顶部-->
<!--reverseLayout=true rv数据排列顺序反转-->
</com.drake.brv.PageRefreshLayout>