Android里面的settext作用,Android性能优化-TextView的setText方法会导致界面重绘?

问题现象

大概就是我们在自定义一个视频组件的ui时,发现了一段异常的效果。 我简述一下:

视频的控制器 底部一般都是 显示时间(textview)和进度条(seekbar)的

一般要实现这个效果 都是开个定时任务 每隔一段时间去重新setText一个时间。

效果如下:

5fd590f229b7788af92904cdf02e971e.png

然后测试mm们发现一个必现的异常,视频的进度条 也就是这个seekbar 总是会在视频开始的前几秒的时候

回退一下。然后才能正常展示进度条。

修复此问题的方法

经过一段时间的努力,我们发现 这个问题的解决方案 是把textview的 width属性 从wrap_content 改成 固定的xxdp值就可以。 问题的解决看似比较简单,但是背后的逻辑没有弄清楚。为什么把textview的属性

改了一下,这个关于seekbar的 问题就修复了?

还原问题现场

为了找到事情的根本原因,我们做了一次最小粒度还原。也就是新建一个干净的工程,排除其他问题的干扰,

看看到底是哪里出了问题?

首先看一下布局,这个布局和一开始我们出bug的布局是差不多的。

android:layout_width="match_parent"

android:layout_height="200dp"

android:background="@color/colorPrimary"

android:orientation="horizontal"

tools:ignore="MissingConstraints">

android:id="@+id/tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

android:gravity=&#

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值