recyclerview联动滑动 关键代码

来源:互联网 发布:nginx rewrite last 编辑:程序博客网 时间:2024/06/05 02:10
private void adjustUILabel(RecyclerView recyclerView) {    final int count = rollHolder.recyclerView.getLayoutManager().getChildCount();    View v = recyclerView.getLayoutManager().getChildAt(0);    if (v == null) return;    final int index = recyclerView.getChildAdapterPosition(v);    final int left = v.getLeft();    for (int i = 0; i < count; i++) {        RecyclerView.ViewHolder holder = rollHolder.recyclerView.getChildViewHolder(rollHolder.recyclerView.getLayoutManager().getChildAt(i));        if (holder != null && holder instanceof MarketViewHolder) {            LinearLayoutManager manager = (LinearLayoutManager) ((MarketViewHolder) holder).recyclerView.getLayoutManager();            manager.scrollToPositionWithOffset(index, left);        }    }    rollHolder.recyclerView.clearOnScrollListeners();    rollHolder.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {        @Override        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {            super.onScrolled(recyclerView, dx, dy);            for (int i = 0; i < count; i++) {                if (recyclerView.getLayoutManager() == null) return;                if (recyclerView.getLayoutManager().getChildAt(i) == null) return;                RecyclerView.ViewHolder holder = recyclerView.getChildViewHolder(recyclerView.getLayoutManager().getChildAt(i));                if (holder != null && holder instanceof MarketViewHolder) {                    LinearLayoutManager manager = (LinearLayoutManager) ((MarketViewHolder) holder).recyclerView.getLayoutManager();                    manager.scrollToPositionWithOffset(index, left);                }            }        }    });}

0 0
原创粉丝点击