Adapter滑动卡顿优化

作者: 你的益达233 | 来源:发表于2019-04-11 19:31 被阅读2次

    1、点击事件过多的用new OnClickListener{}直接匿名内部类

    原因:在滑动的过程中会不断的重复创建新的OnClickListener,旧的不断的被回收当需要回收的对象过多的时候会引起GC,导致列表卡顿。
    解决方案
    可以建一个通用的OnClickListener,不会建的,就在类上集成点击接口,把数据放入Button的Tag中,根据id来判断是哪个Button执行了点击,来取出数据、执行不同的逻辑
    多个参数怎么办,那就setTag多个
    示例代码

    helper.getView(R.id.cl_mood_item).setTag(R.id.adapter_item_id,item.getId());
        helper.getView(R.id.cl_mood_item).setTag(R.id.adapter_position,helper.getAdapterPosition());
        helper.getView(R.id.cl_mood_item).setOnClickListener(this);
    

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            
            case R.id.cl_mood_item:
                if(view.getTag(R.id.adapter_item_id) != null && view.getTag(R.id.adapter_item_id) instanceof Integer &&
                        view.getTag(R.id.adapter_position) != null && view.getTag(R.id.adapter_position) instanceof Integer){
                    //todo your
                }
                break;
            
    
        }
    }
    

    敬请后续。。。

    相关文章

      网友评论

        本文标题:Adapter滑动卡顿优化

        本文链接:https://www.haomeiwen.com/subject/kkixwqtx.html