Android 我的回收站是落后的

Android 我的回收站是落后的,android,android-recyclerview,Android,Android Recyclerview,我使用RecyclerView-CardView和volley获取带有json的mysql项目,并在我的应用程序中显示,在每个CardView行中,我有一个垂直布局,在这个布局中,我有4个带文本的水平布局 但我的应用程序和滚动现在有一些滞后,这是为布局,他们是很多 但我需要他们,我该怎么办 public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> { //Imageloader to

我使用RecyclerView-CardView和volley获取带有json的mysql项目,并在我的应用程序中显示,在每个CardView行中,我有一个垂直布局,在这个布局中,我有4个带文本的水平布局

但我的应用程序和滚动现在有一些滞后,这是为布局,他们是很多

但我需要他们,我该怎么办

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

//Imageloader to load image
private ImageLoader imageLoader;
private Context context;

//List to store all superheroes
List<Getter_Setter> superHeroes;

//Constructor of this class
public CardAdapter(List<Getter_Setter> superHeroes, Context context){
    super();
    //Getting all superheroes
    this.superHeroes = superHeroes;
    this.context = context;
}




@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.ads_list, parent, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {

    //Getting the particular item from the list
    Getter_Setter superHero =  superHeroes.get(position);

    //Loading image from url
    imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
    imageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.imageloader, android.R.drawable.ic_dialog_alert));

    //Showing data on the views
    holder.imageView.setImageUrl(superHero.getImageUrl(), imageLoader);
    holder.textViewName.setText(superHero.getName());
    holder.textView_MainBrand.setText(superHero.getBrand());

}

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

class ViewHolder extends RecyclerView.ViewHolder{
    //Views
    public NetworkImageView imageView;
    public TextView textViewName;
    public TextView textView_MainBrand;

    //Initializing Views
    public ViewHolder(View itemView) {
        super(itemView);
        imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
        textViewName = (TextView) itemView.findViewById(R.id.textViewName);
        textView_MainBrand = (TextView) itemView.findViewById(R.id.textView_MainBrand);
    }
}
公共类CardAdapter扩展了RecyclerView.Adapter{ //Imageloader以加载图像 私有图像加载器; 私人语境; //存储所有超级英雄的列表 列出超级英雄; //这个类的构造函数 公共卡适配器(列出超级英雄、上下文){ 超级(); //获得所有超级英雄 这个。超级英雄=超级英雄; this.context=上下文; } @凌驾 public ViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图v=LayoutInflater.from(parent.getContext()) .充气(R.layout.ads_列表,父项,假); 视窗夹持器视窗夹持器=新视窗夹持器(v); 返回视图持有者; } @凌驾 公共无效onBindViewHolder(ViewHolder,int位置){ //从列表中获取特定项 Getter_Setter superHero=超级英雄.get(位置); //从url加载图像 imageLoader=CustomVolleyRequest.getInstance(上下文).getImageLoader(); 获取(superHero.getImageUrl(),imageLoader.getImageListener(holder.imageView,R.dravable.imageLoader,android.R.dravable.ic_对话框_警报)); //显示视图上的数据 holder.imageView.setImageUrl(superHero.getImageUrl(),imageLoader); holder.textViewName.setText(superHero.getName()); holder.textView_MainBrand.setText(superHero.getBrand()); } @凌驾 public int getItemCount(){ 返回超级英雄。大小(); } 类ViewHolder扩展了RecyclerView.ViewHolder{ //观点 公共网络图像视图; 公共文本视图文本视图名称; 公共文本视图文本视图_主品牌; //初始化视图 公共视图持有者(视图项视图){ 超级(项目视图); imageView=(NetworkImageView)itemView.findViewById(R.id.imageViewHero); textViewName=(TextView)itemView.findViewById(R.id.textViewName); textView\u MainBrand=(textView)itemView.findViewById(R.id.textView\u MainBrand); } } }


尝试毕加索加载图像。但这不是为了我的图像,当我完全删除图像时,它仍然滞后。使用方法跟踪来确定你在哪里花费时间。你的应用程序图片显示,OnClickListeners、images、setText、findViews,可能还有更多。拉吉几乎总是意味着发生的事情太多了。每次滚动时,所有代码都必须运行。最小化代码,缓存图像,将尽可能多的代码放在回收器之外。