liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.51k stars 317 forks source link

列表为空的时候,下拉刷新,出现动画不会自动关闭的情况 #310

Closed syxc closed 1 year ago

syxc commented 1 year ago

列表为空的时候,下拉刷新,出现动画不会自动关闭的情况

下拉刷新,调用接口请求数据,请求成功或者失败都可以主动调用关闭方法来关闭下拉刷新动画

如何复现

任何业务相关问题没有fork仓库复现问题一律无法解决, 凭空猜测只会让问题晦涩难懂, 大量耽误项目维护时间

截图

异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

版本

以下是部分代码:

page?.onRefresh {
  pageIndex = index

  queryMessageData(
    if (pageIndex == 1) {
      1
    } else {
      pageIndex
    }
  )

  val data = getMessageData()
  addData(data) {
    pageIndex < totalPage
  }
}
liangjingkanji commented 1 year ago

无法复现, 希望你能fork仓库在demo中复现此问题, 可以立刻解决

syxc commented 1 year ago

无法复现, 希望你能fork仓库在demo中复现此问题, 可以立刻解决

找到原因了,分析如下:

// 非 binding 方式加载 layout 的情况下
page = rootView?.findViewById(R.id.page) /* 这种,下拉刷新正常 */
rv = rootView?.findViewById(R.id.rv)
// page = rv?.pageCreate() /* 这种,下拉刷新会出现问题(动画出现不会自动关闭的情况)*/

已解决。

liangjingkanji commented 1 year ago

pageCreate并不推荐使用, 但是我认为可能是你多次调用pageCreate导致创建多个PageRefreshLayout

2022年了还在findViewById吗

syxc commented 1 year ago

pageCreate并不推荐使用, 但是我认为可能是你多次调用pageCreate导致创建多个PageRefreshLayout

2022年了还在findViewById吗

这种页面需要 findViewById 的情况不多,够用,够用...