滚动RecyclerView Android后如何找出焦点上的项目?



如何获得滚动回收器视图后处于焦点的列表项的位置?这行得通吗?

recyclerview1.addOnScrollListener(new RecyclerView.OnScrollListener())

如果是,那怎么做?

是的,有两种方法可以做到这一点。

一个使用onBindViewHolder,在onBindViewHolder添加

Log.d("onBindViewHolder", "position =>"+position);
count++; //for the position

但请记住,以这种方式为每个新闻计算几次电话,并且您只能在第一次通话中计数。

另一种方法是使用layoutManagers,即通过执行此操作LinearLayoutManagerGridLayoutManager

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(;

最新更新