Android-如何在RecyclerView中更新自定义列表项单个组件?

时间:2018-08-28 15:09:27

标签: android android-recyclerview

我有一个textviews中有5个progressbar和1个recyclerview的自定义列表项。

我想每秒更新一个listItem的Progressbar

为此,我使用了RunnableHandler

progressHandler.postDelayed( runnable ,1000);

在可运行的run方法中,我更新了listItem并在RecyclerView.Adapter子类中进行了设置

this.mAdapter.refresh(position, listInfo);

适配器中的刷新方法如下

public void refresh(int position, ListInfo item){
        this.filteredData.set(position, item);
        notifyItemChanged(position);
}

这有效并每秒更新自定义listItem。

但是问题是,它还会更新ListItem中的5个文本视图,并且列表项也会更新

有什么方法可以只更新listItem中的进度条吗?

1 个答案:

答案 0 :(得分:0)

除了更新整个列表项外,您可以做的是在适配器类之外而不是

this.mAdapter.refresh(position, listInfo);

使用此

View view = recyclerView.getChildAt(position - linearLayoutManager.findFirstVisibleItemPosition());// linearLayoutManager is recyclerview's layout manager
                    if (view != null) {
                        ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progress_bar);
                        progressBar.postDelayed( runnable ,1000);
                    }