RecyclerView避免重新加载项目?

时间:2017-10-02 11:53:41

标签: android android-recyclerview

我正在使用回收站视图,其中有一些项目包含要加载的复杂自定义组件。加载需要时间,问题是回收器视图调用必要时方法" onBindViewHolder" (在滚动等期间)重新创建视图,因此需要时间再次重新生成所有项目(我不是在谈论项目的XML布局)。所以......对于表现来说并不是很酷。

如何避免重新创建项目?

我试着打电话:

setIsRecyclable

但它没有用。

示例:

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
    // CODE 1 : treatments applied to the item view
    // the problem is here, I don't want to repeat this code when it's already done
}

3 个答案:

答案 0 :(得分:2)

为什么没有一个hashmap存储一个布尔值来指示你是否在该位置执行了操作?

viewDidLoad

答案 1 :(得分:0)

    final Handler timerHandler;
    timerHandler = new Handler();

    Runnable timerRunnable = new Runnable() {
        @Override
        public void run() { // Here you can update your adapter data

            mRecyclerView.invalidate();


             My_function();

            // mRecyclerView.scrollToPosition(mRecyclerView.getAdapter().getItemCount() - 1);

            //mAdapter.notifyDataSetChanged();
            timerHandler.postDelayed(this, 3000);
            //Toast.makeText(Chat_Activity.this, "Refreace", Toast.LENGTH_SHORT).show();
        }
    };
    timerHandler.postDelayed(timerRunnable, 3000);

答案 2 :(得分:0)

onBindViewHolder中的

生成Asynctask并在doInBackground中执行您的内容设置过程。