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 300 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 ex1gtnim7d 2019-12-16 23:38:59 +08:00 UI 做多了现在基本上,如果不如预期表现,首先考虑线程问题,楼主可以注意下。 |