问题现象
大概就是我们在自定义一个视频组件的ui时,发现了一段异常的效果。 我简述一下:
视频的控制器 底部一般都是 显示时间(textview)和进度条(seekbar)的
一般要实现这个效果 都是开个定时任务 每隔一段时间去重新setText一个时间。
效果如下:
然后测试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=&#