【问题标题】:Dynamically adjust recyclerview item's height动态调整recyclerview项目的高度
【发布时间】:2018-07-13 17:41:12
【问题描述】:
我现在正在使用免提设备,但我遇到了滚动问题。我不知道他们如何测量他们要滚动多少,所以我需要 recyclerview 中的项目以适应屏幕的齐平。意思是,我可能想要每页 3 个项目,并且每次我使用设备“向下滚动”时,接下来的 3 个项目都会显示齐平而不被切断。无论如何都要动态调整项目,以便在“滚动”时不会在屏幕上切断它们。我已经尝试获取recyclerview的高度并除以3并使其成为每个项目的高度。然而,在这个设备上,似乎每次我“滚动”时,项目变得越来越不齐,而且越来越切断。有什么想法吗?
【问题讨论】:
标签:
android
scroll
android-recyclerview
【解决方案1】:
您可以使用分页技术
将您的项目分成几组,每组只有三个项目。
假设你有 30 个项目,所以将它分成 10 个组,每个组都有一个类似页码的键,所以当它第一次打开时,你将显示第 1 页,其中包含 3 个项目,并通过滚动和使用无限滚动你会显示第 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 个项目并使用回收器显示新的 3 个项目