RecyclerView滚动条卡顿

6
当我使用新的回收视图时,我注意到滚动条不如常规ScrollView/ListView流畅。看起来它不会在你滚动适配器项时识别,但只有在新项目出现/旧项目消失时才会改变,因此进度条跳跃而不是平稳移动。这是一个视频演示了这个问题。这是一个视频
有没有办法使其平稳?
我的布局:
<android.support.v7.widget.RecyclerView
                android:id="@+id/listRecycler"
                android:scrollbars="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

Fragment:

    mListRecycler.setAdapter(mAdapter);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    mListRecycler.setLayoutManager(layoutManager);

Adapter:

public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.ViewHolder> {

private List<News> items;
private int itemLayout;

public NewsAdapter(List<News> items, int itemLayout) {
    this.items = items;
    this.itemLayout = itemLayout;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false);
    v.setOnClickListener(this);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    News item = items.get(position);
    holder.text.setText(item.getTitle());
    holder.itemView.setTag(item);
}


@Override
public int getItemCount() {
    return items.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
    @InjectView(R.id.title)
    TextView text;

    public ViewHolder(View itemView) {
        super(itemView);
        ButterKnife.inject(this, itemView);
    }
}

}


同样奇怪的是,你展示的另一个例子也出现了相同的延迟,只是有更多的项目。当视图超出屏幕时,请注意滚动条手柄会晃动一下。 - TWiStErRob
你能更新线程至最新版本的RV,并将平滑滚动条设置为true吗? - yigit
2个回答

2

这是L预览版中的问题。LinearLayoutManager没有平滑滚动条支持。当RecyclerView发布时将进行修复。


7
仍然发生在21.0.0版本。 - TWiStErRob
这样的,有这么多错误的代码是怎么发布出去的。根本无法使用。 - Jacek Kwiecień

0

RecyclerView还使用高度(如果方向是垂直的)或宽度(如果是水平的)来计算滚动条的高度(或宽度)。如果您的列表项具有相同的高度(或宽度),则考虑使用setHasFixedSize()。

mRecyclerList.setHasFixedSize(true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接