动态调整recyclerview物品的高度

时间:2018-07-13 17:41:13

标签: android scroll android-recyclerview

我现在正在使用免提设备,并且在滚动时遇到问题。我不知道他们如何衡量他们要滚动多少,所以我需要recyclerview中的项目以适合屏幕齐平。意思是,我可能希望每页3个项目,并且每次我向下“滚动”设备时,接下来的3个项目都会显示为齐平而不被切断。无论如何,是否有可以动态调整项目的内容,以便在“滚动”时不会在屏幕上切断它们。我尝试过获取recyclerview的高度,并除以3,然后将其设置为每个项目的高度。但是,在此设备上,似乎每次我“滚动”时,物品变得越来越少冲洗,并且越来越多地截止。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用分页技术 将您的项目分为几组,每组只有三个项目。 假设您有30个项目,因此将其分为10组,每组都有一个键,如页码,因此当它第一次打开时,您将显示包含3个项目的第1页,并通过滚动和使用无休止滚动来显示第2页,依此类推。

这如何拆分项目

 int pageNumbers = (int) Math.ceil(items.size() / 3.0);
            for (int i = 1; i <= pageNumbers; i++) {
                if (i == 1)
                    firstIndex = 0;
                else
                    firstIndex += 3;
                lastIndex=firstIndex+3;
                ArrayList<String> itemsPerPage=new ArrayList<>();

                for (int j = firstIndex; j < lastIndex; j++)
                {
                 itemsPerPage.add(items.get(j));   
                }
                    pages.put(i, items);
            }

现在您有了一个每页包含项的HashMap,并且通过使用recyclerView实现onSrollListener,您可以更新页面并得到类似:page = 2,其中包含3个项,并使用recycler显示新的3个项。