我的問題是相當複雜的,我很難找到一個解決方案,實現以下目標:的Android ViewPager - 動態寬度和
我需要有一種傳說(步進)佈局,其中一個孩子是由左欄,然後是一個圓圈,然後是一個右欄。嚴厲地講一些像「-o-」的東西。所以一系列的孩子看起來像這樣:「-o-o-o-o-o」。當圖例集中在一個孩子意思是當前孩子是這個孩子時,這個孩子有一個更大的圓圈和更長的酒吧:「--O--」。
最終的渲染看起來像這樣:「-o-o -O-o-o-」。
每個孩子(「-o-」)對應於數據庫中的特定項目。當孩子獲得焦點(「--O--」)時,相關項目顯示在下面。當用戶從右向左滑動時,顯示下一個項目,而從左向右滑動將顯示前一個項目。
滑動時,顯示哪個孩子將顯示其相應的項目,說孩子會動畫顯示它有焦點。我用一個Animator
到:
- 增加棒寬度,這是 獲得焦點
- 降低先前這些值關注孩子的孩子的圓圈大小。
顯示圖例需要看看之前和接下來會發生什麼。
我相信使用ViewPager
會幫我實現以下目標:
- 它有一個「錨定效應」,意思是刷卡將孩子轉移到孩子,圍繞圓:之間的圈子可以這麼說,酒吧是主播。
- 我可以通過重寫我的自定義
adapter
的getPageWidth()
方法的其他解決方案,我腦子裏想的是HorizontalScrollView
在屏幕上顯示多個頁面。 如果我要使用它,根據滑動屬性(強度,速度),圖例將在不固定圓的情況下不確定地滾動。
但是使用ViewPager
存在一個很大的問題:每個頁面都有相同的寬度。然而,圖例的錨定孩子需要更大(所以需要更多的寬度)。
那麼如何動態改變寬度呢?
除非我可以自定義HorizontalScrollView
通過在滑動中攔截來添加錨效應?
你在github https://github.com/LyndonChin/AndroidRubberIndicator上試過這個示例代碼嗎? –