安卓计算滚动recyclerView的百分比

8
我正在尝试使用以下代码自动显示滚动到RecyclerView项末端的百分比:

我正在尝试使用以下代码自动显示滚动到RecyclerView项末端的百分比:

visibleItemCount = bookContentLayoutManager.getChildCount();
totalItemCount   = bookContentLayoutManager.getItemCount();
firstVisibleItem = bookContentLayoutManager.findFirstVisibleItemPosition();

float percentage = (visibleItemCount * 100 / totalItemCount);
Log.e("percent ", percentage + "");

但它不正确,我正在尝试找到解决方法,这意味着显示当前滚动的recyclerview项目的百分比。


尝试使用 getAdapterPosition(); ? - Sarthak Gandhi
你的意思是已经滚动的正在进行中的计数的百分比与我们拥有的总项目数吗? - Jitesh Mohite
请查看我的回答,如果您能提供使用案例,它将非常有用。 - Mightian
2个回答

26

Recyclerview提供了以下用于垂直和水平滚动的方法,使用以下代码:

        int offset = recyclerView.computeVerticalScrollOffset();
        int extent = recyclerView.computeVerticalScrollExtent();
        int range = recyclerView.computeVerticalScrollRange();

        float percentage = (100.0f * offset / (float)(range - extent));

你可以通过调用 Math.round(percentage); 来对最终值进行四舍五入。 - deadfish
你是我的英雄。谢谢! - jordiz
这似乎无法与具有多个视图类型的RecyclerView很好地配合使用...您知道这种情况的解决方案吗? - Jahir Fiquitiva

0

我认为这个会起作用。试一下并让我知道:

 int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
    int totalItemCount = layoutManager.getItemCount();
    float percentage=(lastVisibleItemPosition/totalItemCount)*100;

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