RecyclerView是滞后的

时间:2017-02-24 12:36:29

标签: android android-recyclerview picasso recycler-adapter

我的RecyclerView中有8个项目,其中包含图像和标题。 表现极其滞后。

我使用Picasso加载图像。图像甚至不是高分辨率导致滞后。

这是我的适配器:

public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.CategoryViewHolder> {

private Context context;
private List<Category> categories;

class CategoryViewHolder extends RecyclerView.ViewHolder {
    TextView categoryTitle;
    ImageView categoryImage;

    CategoryViewHolder(View view) {
        super(view);
        categoryTitle = (TextView) view.findViewById(R.id.category_title);
        categoryImage = (ImageView) view.findViewById(R.id.category_thumbnail);
    }
}

public CategoryAdapter(Context context, List<Category> categories) {
    this.context = context;
    this.categories = categories;
}

@Override
public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.category_item, parent, false);
    return new CategoryAdapter.CategoryViewHolder(itemView);
}

@Override
public void onBindViewHolder(final CategoryViewHolder holder, int position) {
    Category category = categories.get(position);
    holder.categoryTitle.setText(category.getCategoryTitle());
    Picasso.with(context)
            .load(category.getCategoryImage())
            .into(holder.categoryImage);
}

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

3 个答案:

答案 0 :(得分:1)

您是否为活动设置了任何背景图片。如果是,则检查背景图片大小。可能是太大了。这会使它变得迟钝。

答案 1 :(得分:0)

一种方法是在从毕加索获取图像时异步调用该方法。请从更多信息How to asynchronously call a method in Java

中查看以下链接

答案 2 :(得分:0)

在初始化recyclerview后,在行下面添加

,我面临着同样的问题
recyclerView.setNestedScrollingEnabled(false);