2011-10-03 29 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會改變。

你沒有做錯什麼,它是設計錯誤的/爲別的東西。