2011-10-03 25 views
0

这是一个哲学问题,因为实际问题已解决。 SDK提供了一个Gallery类。这个画廊是我需要的90%,它只是缺少2件事。一个我想实现一个额外的Runnable触发定期前进到下一个项目,两个我需要它动画滚动项目之间的滚动。创建“Ticker”行为的子类库构件

汽车周期性推进很容易。不过,我遇到了在项目之间实施scoll动画的主要问题。现在我已经通过覆盖setSelection解决了这个问题,这对于onFling来说是必不可少的。

我的背景主要是Python在这一点上,所以这个实现感觉有点肮脏。我正在计算基于父宽度的速度,然后调用onFling(null,null,my_calculated_velocity,0)。这对我来说确实是错误的,如果由于某种原因,谷歌计算距离速度变化的距离呢?

现在,我通过画廊的来源看,我看到吨的办法是觉得一吨不如我: MOVENEXT scrollToChild mFlingRunnable.startUsingDistance

其中没有一个是从画廊的一个子类进行访问。在Python中,没有真正的私有概念,所以我发现,当我在java中进行子类化时,我最终不得不复制类的粘贴2/3以覆盖单个行为。

所以问题是我做了什么错误,导致我试图以反对Java谷物的方式做事情,或者我只是希望每次坐下来工作一个android项目并找到所有的东西这些方法可以做到我需要的是私有的还是默认的,而不是公共的或保护的?

+1

我觉得你很不幸尝试用'Gallery'来做你想做的事情。我最近开始使用'Gallery'来实现'TextView'小部件的水平菜单,并且我意识到它确实不是特别灵活,并且是一个真正的PITA。一般来说,大多数Android类都可以很容易扩展,可以提供足够多的功能 - “Gallery”恰好是一个糟糕的IMO,而且我读过许多不同的人,他们也不认为这是值得的使用。我现在正在重新思考,因为'Gallery'确实不会削减它。 – Squonk

+0

当然,这可能只是'画廊'是一个非常设计的类。我想那么正确的方法是什么。是否有一个开箱即用的小部件更适合用我描述的基本行为处理'TextViews'的水平列表?也许即使它的扩展更灵活,以至于我可以在将来完全避免使用“Gallery”。 – John

+0

“私人”只是设计师说“不要混淆这个功能”的方式。 – richardwiden

回答

0

画廊是如前所述不是一个很好的类延伸。这里更好的方法实际上就是获取源代码并使用它。

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

你没有做错什么,它是设计错误的/为别的东西。