Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PageRefreshLayout无法设置多个空缺省页 #422

Open
BestDreams opened this issue Jan 24, 2024 · 4 comments
Open

PageRefreshLayout无法设置多个空缺省页 #422

BestDreams opened this issue Jan 24, 2024 · 4 comments

Comments

@BestDreams
Copy link

问题描述

PageRefreshLayout只能设置一个空缺省页,如果我是一个带Tab标签的列表,不同标签的Tab要显示不同的空缺省页。
如下图所示

  1. PageRefreshLayout的addData方法里,调用showEmpty()时由于不支持传tag,导致StateLayout.showEmprt()一直取的第一次设置的空缺省页
  2. PageRefreshLayout的onEmpty只会回调一次(与问题1是同一个原因导致的)

期望结果

1.PageRefreshLayout的addData方法里的showEmpty支持传tag
2.PageRefreshLayout的onEmpty每次显示都能回调

截图

1706064315940
image

版本

  • BRV: 1.5.7
  • Android:
  • Gradle:
  • Android Studio:
@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 29, 2024

一般情况我都会根据Fragment的arguments来在代码中动态赋值当前Fragment的缺省页, 这种似乎更加合理和简单直接

如果你有更好的处理方式可以提出

@BestDreams
Copy link
Author

我这个页面不是那种一个Tab对应一个Fragment的,就是一个Activity里PageRefreshLayout套一个RecyclerView,切换Tab就调接口刷新列表,接口里的某个参数根据tab赋值。

我这边目前想到的方案,就是如果不动框架的话:
就是禁用PageRefreshLayout里的StateLayout,然后PageRefreshLayout套StateLayout套RecyclerView,自己根据接口的数据手动调用StateLayout去设置。

如果动框架的话,目前想到几种方式,可能不是最佳的:

  1. 在addData方法上加一个可空的tag参数(动主要方法的参数,可能对已经在用框架的影响太大,估计不太现实);

  2. 加一个获取tag的callback,在addData里调用showEmpty时传入,伪代码:
    val getEmptyTag: () -> String?
    fun addData(){

    ......

    if (isEmpty()) {
    showEmpty(getEmptyTag.invoke())
    return
    }

    ......

}

@XXQAQ
Copy link

XXQAQ commented Mar 5, 2024

联系我,我有完美解决的方案

@liangjingkanji
Copy link
Owner

PageRefreshLayout自定义一个扩展函数不就行了, 例如addDataWithTag()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants