1
guchengyehai1 2019-12-14 23:15:26 +08:00 via Android
第一步先检查有没有添加成功并正常显示
第二步查看 Animation 或者 Animator 有没有开始,Animator 原理看一下 |
2
nicevar 2019-12-14 23:42:42 +08:00
就这点描述很难猜出问题所在,约束布局如果 set invisible 而不是 gone 呢?
检查一下动画是否写的有问题,添加一下 listener 打日志观察或者观察一下动画不更新 view 的 dispatchDraw |
3
Rysle 2019-12-15 00:20:39 +08:00
可能遇到了 ViewGroup.mDisappearingChildren 的陷阱。
试试在每次 removeView(A)之前,stop 掉 A 的 Animation。 |
4
rosu 2019-12-15 00:24:46 +08:00 via iPhone
最简单先看 3 动画是否开始。
|
5
KINGOD 2019-12-15 00:31:54 +08:00
我也遇到过 #3 类似问题,如果不先 stop(),start() 不管用,于是在动画启动的地方写的是 stop(); start(); 两条语句。
另外建议楼主检查下 addView() invalidate() 是否是在 UI Thread 下调用的,如果是非 UI 线程,就需要 postInvalidate() / postInvalidateOnAnimation() 这些 postXXX 方法。 |
6
scola OP 多谢楼上回复,感觉这个问题和动画关系不大,textview 也是不停更新的,父 view 是 windowmanager,显示正常,一旦把父 view 切换到 ViewGroup,就卡住
A 刚 new 出来,直接添加到 viewgroup 也是没有问题的,一旦执行了切换父 view 操作,切到 viewgroup,卡住,再次切到 windowmanger 恢复正常,切到 viewgroup,卡住 ui 相关的操作都是主线程,可以保证 @guchengyehai1 @nicevar @Rysle @rosu @KINGOD |
7
huoluobo 2019-12-15 09:29:48 +08:00 via Android
动画卡住的问题之前遇到过,如果你是在资源文件中定义动画效果的话,改成代码实现动画效果试试。
|
8
winterbells 2019-12-15 10:14:43 +08:00 via Android
打断点呢,view 的方法走进去了吗
rxjava 的主线程不一定能更新 UI,有次遇到没有 crash,但 UI 更新不了,打印出来线程是 main,Rx 而不是 main,main 还有一次遇到构造方法 super 错了,layout add view 没反应(自己失误,看了半天,最后用 Java 写了一遍才发现。。) - 实在不行把代码发出来,光靠猜有点难 |
9
nicevar 2019-12-15 10:33:02 +08:00
@scola 你一不提供 demo,二不仔细跟一下可能出问题的,光靠自己的瞎想和你这样描述很难解决问题,要么你就干脆点直接扔个 demo 让大家帮你看一下
|
10
gowa 2019-12-15 22:12:34 +08:00 via Android
talk is cheap show me you code
|
11
CoderMVP 2019-12-15 22:16:52 +08:00 via iPhone
这种问题有可能是多次 remove 和 add,但是资源没有释放导致的。在你的自定义 view 的 onDetachToWindow()做调用动画的停止并把动画引用置空试试
|
12
kerb15 2019-12-16 23:38:59 +08:00
UI 做多了现在基本上,如果不如预期表现,首先考虑线程问题,楼主可以注意下。
|