Android 如何知道视图何时实际显示

Android 如何知道视图何时实际显示,android,android-layout,android-widget,android-ui,Android,Android Layout,Android Widget,Android Ui,我有一个图库,可以显示多个可滚动的框架,每个框架都包含一个复杂的布局。 其中一个布局元素是一个类似仪表的自定义视图,它应该在显示时设置动画,而不仅仅是创建。 因此,如果我滚动到包含此视图的布局一次,然后返回,然后再滚动到那里-它应该会做动画,用户应该会看到它 我没有找到一个合适的回调。我已经尝试过的是覆盖: 昂德劳 网上购物 奥纳塔克多文多 显示提示 onVisibilityChanged 其中有些根本不被调用,有些仅在库重新初始化视图时调用,而不是在实际显示视图时调用 谢谢你 您可以尝试覆盖图

我有一个图库,可以显示多个可滚动的框架,每个框架都包含一个复杂的布局。 其中一个布局元素是一个类似仪表的自定义视图,它应该在显示时设置动画,而不仅仅是创建。 因此,如果我滚动到包含此视图的布局一次,然后返回,然后再滚动到那里-它应该会做动画,用户应该会看到它

我没有找到一个合适的回调。我已经尝试过的是覆盖:

昂德劳

网上购物

奥纳塔克多文多

显示提示

onVisibilityChanged

其中有些根本不被调用,有些仅在库重新初始化视图时调用,而不是在实际显示视图时调用


谢谢你

您可以尝试覆盖图库适配器上的
getView

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = super.getView(position, convertView, parent);
    /* trigger your animation on this view */
    return view;
}

调用
getView
的时间没有明确的约定,但当相关视图出现在屏幕上时,应该调用该约定。

您可以尝试覆盖图库适配器上的
getView

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = super.getView(position, convertView, parent);
    /* trigger your animation on this view */
    return view;
}

调用
getView
的时间没有明确的约定,但是当相关视图出现在屏幕上时应该调用它。

不是-Gallery有一种缓存过去视图的方法,因此此函数不指示显示。我已经覆盖它以从适配器提供视图,所以我检查了它。可能是视图显示时没有明显的区别。它不是-Gallery有一种缓存过去视图的方法,因此此函数不指示显示。我已经覆盖它以从适配器提供视图,所以我检查了它。可能是视图显示时没有明显的区别。