当跑马灯完成时触发事件

4

我想要滚动文本,并且当滚动完成(即完成一个完整的滚动循环)时,我想要触发另一个事件。有没有好的方法来实现这个功能?我在滚动TextView时没有看到OnEnd或类似的函数。

1个回答

1

使用自定义的TextView,您可以重写onDraw方法,在mMarquee字段和mMarquee字段的mStatus字段上使用反射(请参见grepcode或类似的TextView代码)。

mStatus值为2时,跑马灯正在运行,值为0时则停止。

onDraw方法被频繁调用,特别是在跑马灯完成后立即调用。


你怎么获取这个mMarquee字段?我看过https://android.googlesource.com/platform/frameworks/base/+/jb-mr0-release/core/java/android/widget/TextView.java,但不知道如何让它工作。 - Pablo R.
嗨@njzk2。你能分享一下如何使用反射来获取mMarquee的例子吗?我在获取这个字段或继承字段时遇到了问题。谢谢。 - donmj
1
@donmj 请查看 https://www.baeldung.com/java-reflection-class-fields 以开始使用反射。 - njzk2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接