其他分享
首页 > 其他分享> > android-Recyclerview:完全可见时回调视图

android-Recyclerview:完全可见时回调视图

作者:互联网

这是用例:

我有5个食物imageviews的recyclerview列表:

>西瓜
>芒果
>桃子
>苹果
>番石榴

我想记录一个输出(Log.e(TAG,“显示了桃子!”),当用户滚动通过它时,桃子图像视图在recyclerview中完全可见.

当视图在recyclerview中完全可见时,是否存在调用的回调?我几乎想将方法findFirstCompletelyVisibleItemPosition()转换为回调方法:http://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#findFirstCompletelyVisibleItemPosition()

我读了这个线程:
RecyclerView – callback when view is no longer visible,然后在此处查看文档http://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnChildAttachStateChangeListener.html,但我看到在以下情况下调用了回调方法onChildViewAttachedToWindow():

Called when a view is attached to the RecyclerView.

可以在实际显示视图之前附加附件.

我可以想到一种效率极低的方法:

>在您的recyclerview上设置RecyclerView.OnScrollListener
>在onScrolled方法内调用mLinearLayoutManager.findFirstCompletelyVisibleItemPosition().检查返回等于3的int.

每次recyclerview滚动时,将执行数百次计算.

解决方法:

正如您提到的,您实际上应该在onScrolled()方法中处理它. findFirstCompletelyVisibleItemPosition()方法非常有效,所进行的计算不会影响大多数设备,包括低端设备.

附带说明一下,我认为您想要的是findLastCompletelyVisibleItemPosition()方法.

去过也做过 :-)

标签:android-recyclerview,listener,android
来源: https://codeday.me/bug/20191119/2036342.html