RecyclerView获取第一个可见项目的高度

时间:2018-02-02 12:48:32

标签: java android android-recyclerview

如何计算recyclerview中第一个可见项目的高度?

  public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        switch (newState) {
            case RecyclerView.SCROLL_STATE_IDLE:
                Log.d("scroll_stop","The RecyclerView is not scrolling : ");
                View firstItemView = mGLM.findViewByPosition(mGLM.findFirstVisibleItemPosition());

                View mVizibleView= mPlm.findViewByPosition(mGLM.findFirstVisibleItemPosition());
}
  });

但是这给了我视图的全部高度

2 个答案:

答案 0 :(得分:0)

获取任何RecyclerView项目的大小毫无意义,如果您nevergetHeight()任何项目,它只会给出Null错误并且您的应用程序将崩溃。

你可以做什么,是使用来自recyclerView适配器的ViewHolder,首先将特定高度设置为你想要的任何物品,然后在其他地方使用那个高度。

请看下面的代码,也许有帮助:



getWidth()




你也应该能够在特定的位置使用物品

这不适用于Width,因为项目总是被拉伸以填充layoutManager的列

答案 1 :(得分:0)

获取第一件物品的高度的步骤:

  1. custom的recyclerview参考中获取布局管理器
  2. 使用first
  3. 获取第一个可见项位置
  4. 如果第一拳头可见物品的位置为0,则获得第0个孩子的身高onScrolled()

示例代码:

layoutManager.findFirstVisibleItemPosition()