Android RecycleView全部item倒计时的高效实现

需要使用全局的定时器,而不是每条item均设置定时器,而且在可见视图内定时刷新UI

public void initTimer() {
    mTimer = new Timer();
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            onDownTimeTask();
        }
    };
    mTimer.schedule(timerTask, 0, 1000);
}

private void onDownTimeTask() {
    if (mBargainOrderList != null && mBargainOrderList.size() > 0) {
        int firstVisiblePosition = mLayoutManager.findFirstVisibleItemPosition();
        int lastVisiblePosition = mLayoutManager.findLastVisibleItemPosition();
        for (int i = 0; i < mBargainOrderList.size(); i++) {
            if (i >= firstVisiblePosition && i <= lastVisiblePosition) {
                final BargainOrderAdapter.ViewHolder viewHolder = (BargainOrderAdapter.ViewHolder) mMyBargainOrderListRecyclerView.findViewHolderForLayoutPosition(i);
                mActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        viewHolder.bargainCountdownView.refresh();
                    }
                });
            }
        }
    }
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/18/efficient-implementation-of-countdown-for-all-items-in-android-recycleview/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android RecycleView全部item倒计时的高效实现
需要使用全局的定时器,而不是每条item均设置定时器,而且在可见视图内定时刷新UI public void initTimer() { mTimer = new Timer(); TimerTask time……
<<上一篇
下一篇>>
文章目录
关闭
目 录