如何知道何时显示布局中的特定视图在RecyclerView中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何知道何时显示布局中的特定视图在RecyclerView中相关的知识,希望对你有一定的参考价值。

我有一个复杂的布局,在Recycler View中使用。所以我想知道什么时候显示一些特定的视图,比如标题TextView。

此RecyclerView位于ViewPager中。因此,只有在显示ViewPager的子项时才需要回调。

这样,我想要已经显示了RecycleView项目的分析。

我该如何实现这一目标?是否有相同的回调方法?或者我只需要为View添加layoutChangeListener或addOnGlobalLayoutListener,并通过检查该视图的Rect来检查该特定View是否显示。

答案

试试这种方式:

private static int firstVisibleInListview; firstVisibleInListview = yourLayoutManager.findFirstVisibleItemPosition();

在您的滚动侦听器中:

 public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);

    int currentFirstVisible = yourLayoutManager.findFirstVisibleItemPosition();

    if (currentFirstVisible > firstVisibleInListview) {
        Log.i("RecyclerView scrolled: ", "scroll up!");
    } else {
        Log.i("RecyclerView scrolled: ", "scroll down!");
    }
    firstVisibleInListview = currentFirstVisible;
}

与您可以获得最后一个可见项目相同。

谢谢

以上是关于如何知道何时显示布局中的特定视图在RecyclerView中的主要内容,如果未能解决你的问题,请参考以下文章

在Recycler视图上添加图像视图时,Android导航抽屉动画滞后/减速

如何从android studio中的recycler视图将数据添加到SQLite数据库中

动态地向Recycler视图添加多个视图

何时从android中的布局加载片段中的视图

如何知道 UICollectionView 何时完成布局?

在水平和垂直的recyclerview中膨胀布局,具有recycler视图的FlexboxLayout添加视图水平自动垂直