【问题标题】: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 个项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      相关资源
      最近更新 更多