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