如何获得滚动回收器视图后处于焦点的列表项的位置?这行得通吗?
recyclerview1.addOnScrollListener(new RecyclerView.OnScrollListener())
如果是,那怎么做?
是的,有两种方法可以做到这一点。
一个使用onBindViewHolder,在onBindViewHolder
添加
Log.d("onBindViewHolder", "position =>"+position);
count++; //for the position
但请记住,以这种方式为每个新闻计算几次电话,并且您只能在第一次通话中计数。
另一种方法是使用layoutManagers
,即通过执行此操作LinearLayoutManager
或GridLayoutManager
int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();
int lastVisiblePosition = layoutManager.findLastVisibleItemPosition();
或者对于scrollListener
你可以这样做
recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
//you can use other methods as per your requirements
Toast.makeText(mContext, "Scrolled to"+layoutManager.findLastCompletelyVisibleItemPosition(), Toast.LENGTH_SHORT).show();
})
希望这对你有帮助。
我刚刚遇到这个问题,我得到了 我把回收器视图放在滚动视图中 所以请不要把回收器视图放在滚动视图中,这也可能导致 mLayoutManager.findFirstVisibleItemPosition(( 总是返回固定值。 并检查 recyclerview.setNestedScrollingEnabled(false(;