【Android TV端】RecyclewView中局部更新(实现item下载进度实时更新)

本文探讨了在Android TV环境中,如何利用RecyclerView实现下载时的局部更新,以解决因频繁刷新导致的性能问题和用户体验下降。介绍了多种解决方案,包括通过notifyItemChanged更新特定item,避免界面闪烁和焦点失控。并推荐了一个下载框架。
摘要由CSDN通过智能技术生成

前言

本文总结了在TV盒子端 使用RecycleView 实现局部更新的解决思路与方法,希望对你有所帮助。

1. 需求背景

Android在RecycleView中, 下载时item中的进度条不断更新时的处理方法。由于下载过程中,进度条会随着进度的不同而不断刷新界面,处理不好会引发程序卡顿或ANR。

2. 性能问题

TV端如果用notifyDatasetChanged()来刷新整个界面,下载刷新比较频繁的话,一量下载中的数量过多,性能极其低下,在TV端硬件盒子性能不佳的情况下,很容易引发ANR,会造成内存消耗和页面卡顿,出现焦点乱跑和操作无反应,用户体验极差。

3. 解决思路

采用局部更新,刷新某个item,再深入一点,局部刷新某个item中的某个控件,从而真正实现局部刷新,也不会出现界面闪烁的问题。

3.1 解决方案一

通过listview.getFirstVisiblePosition()方法获取到显示的item的首个位置 ,再根据position, 计算出view的位置。获取到具体的view后

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊子说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值