我有一个Gallery
,想知道屏幕上有多少项目可见。每个项目都占据了整个屏幕,所以我真的很想知道两个项目是否因为中间滚动而可见。感谢。
答案 0 :(得分:0)
我能想到的最好的方法是在Gallery上设置一个AnimationListener,如下所示:
gallery.setLayoutAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
//schedule timer to execute halfway through animation here
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
}
});
使用gallery.setAnimationDuration(durationInMilliseconds)设置动画持续时间;
现在你知道动画何时开始,你知道需要多长时间。使用该信息,您可以安排计时器在动画中途执行代码,这应该是当您的图库同时显示两个视图时。
这似乎是一个非常困难的方法,所以给别人时间给出更好的建议。
答案 1 :(得分:0)
好的,我们走了。!扩展您的Gallery
访问
protected boolean getChildStaticTransformation(View child, Transformation t) {}
您可以访问图库中显示的每个视图。 从现在开始你可以做两件事。
getChildStaticTransformation
可以多次调用,例如触摸事件等,这就是为什么必须检查唯一子项)。
请注意,此方法返回由库填充的子项。 Gallery填充了top-1和bottom + 1 childs以解决性能问题。有时是+2 -2或+ n -n(取决于子宽度,原因是水平滚动小部件)。因此,对于显示在图库中的孩子来说,这可能不是你需要的原因并不总是准确的。