我有一些片段,当它们可见时我需要运行一些动画。
这些片段在ViewPager中。感谢这个答案 - How to determine when Fragment becomes visible in ViewPager - 我知道当我的片段通过方法getUserVisibleHint可见时会收到通知。
因为我有很多动画,所以我制作了自定义视图,知道如何动画自己。现在我需要在片段的方法getUserVisibleHint中通知片段内的所有视图,他们知道这是时间自己制作动画。
所以我的问题是: 如何通知片段内的所有视图?
欢迎任何解决方案,但我怎么说,我需要通知的观点是我创建的自定义视图,所以我认为我也需要某种自定义通知。
答案 0 :(得分:1)
你说你的所有观点都是定制的。我假设他们都实现了一个特定的接口(比方说,InterfaceA
)。
以下代码将在实现notificationMethod()
接口的每个自定义视图上调用InterfaceA
。 viewGroup
是您的根视图(例如,LinearLayout
)。
int childcount = viewGroup.getChildCount();
for (int i=0; i < childcount; i++){
View view = viewGroup.getChildAt(i);
if (view instanceof InterfaceA) {
((InterfaceA)view).notificationMethod();
}
}