子类化Gallery小部件以创建“Ticker”行为

时间:2011-10-03 20:10:58

标签: android inheritance android-gallery

这主要是一个哲学问题,因为实际问题已经解决。 SDK提供了Gallery类。这个画廊占我所需要的90%,它只缺少两件事。我想要实现一个额外的Runnable,它会触发定期前进到下一个项目,还有两个我需要它来为项目之间的滚动设置动画。

自动定期推进很容易。但是我遇到了在项目之间实现scoll动画的主要问题。现在我通过覆盖setSelection解决了这个问题,必须要成为onFling的包装器。

我的背景主要是Python,所以这个实现对我来说有点脏。我正在根据父级宽度计算速度,然后调用onFling(null,null,my_calculated_velocity,0)。这对我来说真的很不对,如果由于某些原因谷歌计算距离速度变化的方式怎么办?

现在我浏览一下Gallery的来源,我看到很多让我感觉更好的方式: MOVENEXT scrollToChild mFlingRunnable.startUsingDistance

其中任何一个都无法从Gallery的子类访问。在Python中没有真正的私有概念,所以当我在java中对某些东西进行子类化时,我最终不得不复制该类的2/3版本以覆盖单个行为,这让我感到沮丧。

所以问题是我做错了什么导致我尝试以反对Java谷物的方式做事情,或者我只是期望每次我坐下来开发一个Android项目并找到所有的时候都会感到沮丧做我需要私有或默认的方法,而不是公开或受保护的方法?

1 个答案:

答案 0 :(得分:0)

如前所述,Gallery不是一个非常好的扩展类。这里更好的方法实际上就是获取源并使用它。

FYI速度DO改变,如果设备由于某种原因暂时锁定。

你没有做错什么,这是设计错误的类/其他东西。