MarqueeView icon indicating copy to clipboard operation
MarqueeView copied to clipboard

重影问题

Open fushen0 opened this issue 7 years ago • 17 comments

首先非常感谢使用到这么好的项目~~我用的是1.3.2 ,还是存在重影的问题。我是首页MainActivity挂载四个Fragment, 采用显示隐藏的方式展示四个Fragment。第一个Fragment 中使用了MarqueeView做一个滚动的通知栏的效果,在切换其它fragment再切换回来时,会出现重影的问题。尝试过你说的解决方案, 即在生命周期中暂停开始,还是未能解决问题。希望能看到这个问题解决的方案,谢谢!

fushen0 avatar Nov 01 '17 06:11 fushen0

虽不算完美,但已解决。

fushen0 avatar Nov 02 '17 02:11 fushen0

你试试V1.3.3呢

sunfusheng avatar Nov 23 '17 02:11 sunfusheng

同样遇到了这个问题,我用的是1.3.3,但是重影问题依然存在,我的问题和1楼的一样。真心希望可以给出这个的解决方案。谢谢

Jmengfei avatar Dec 21 '17 10:12 Jmengfei

重影截个图看看吧

macleo avatar Dec 30 '17 10:12 macleo

我也自己解决了,在fragment的方法onHiddenChanged(boolean hidden)中控制了一下stopFlipping和startFlipping

Jmengfei avatar Jan 09 '18 01:01 Jmengfei

用webview打开轮播看详情,返回重影问题依然存在,目前我是这种解决的,用户点击条目,调用stopFlipping,页面可见调用startFlipping

gitkmw avatar Apr 19 '18 07:04 gitkmw

同上我也用 onHiddenChanged 解决 但是最后停留的那一条 再回来该fragment 会再重复一遍 有和解决方法吗

DreamYONG avatar Apr 24 '18 08:04 DreamYONG

重影问题,onHiddenChanged 也没解决

lqqhd2 avatar Apr 28 '18 01:04 lqqhd2

重影问题,onHiddenChanged 不能解决 请问有新的方案吗?

truesA avatar May 23 '18 10:05 truesA

同问,重影问题怎么解决

everyline avatar May 31 '18 01:05 everyline

重影现象是因为刷新的时候,原有动画还在执行,新的动画又来了导致; 解决方法刷新前先暂停动画,请求到数据再重新开始动画。 /** * 暂停动画 */ public void stopAnimation() { clearAnimation(); stopFlipping(); }

monkey520 avatar Jun 15 '18 01:06 monkey520

这个clearAnimation(); stopFlipping(); 也没法解决

everyline avatar Jun 27 '18 08:06 everyline

Fragment 判断setUserVisibleHint(boolean isVisibleToUser) 可见startFlipping(); 不可见stopFlipping(); onResume 和 onStop 也控制一下,貌似解决重影了,至少这两天都没看见重影...

zimengfang avatar Jul 05 '18 02:07 zimengfang

@Jmengfei onHiddenChanged 重影问题解决了,但是发现一个新的问题,文字不是按顺序轮播执行了,你有这种情况吗

liguangze avatar Aug 23 '18 02:08 liguangze

我的解决了,比如说我是首页四个Fragment tab之间切换,在onHiddenChanged界面隐藏后调用stopFlipping();停止动画,在onHiddenChanged界面显示时startFlipping()开始动画。正常的应该是这样的,但是一开始我尝试过后还是有重影,经过代码上的检查后发现,我在onHiddenChanged界面显示时还去请求了数据,获得数据后我有调用了startWithList(list)。这就相当于我在同一次调用了两次开启动画,所以才会有重影问题

qianshengta avatar Jan 22 '19 02:01 qianshengta

if (MarqueeView.getNotices().isEmpty() && !MarqueeView.getNotices().equals(oldList)) { //避免重复set 重影问题 不等于空 并且 不等于老的数据就替换 tvAutoOfficeAnnounceHeader.startWithList(mSystemMessages); } 确实是这个问题导致的,终极解决方案。

#65

starktonys avatar Sep 12 '19 10:09 starktonys

MarqueeView.getNotices().isEmpty() 表示不等于空吗,这句解释没有问题吗

krcdxnh avatar Jan 15 '20 07:01 krcdxnh