2012-12-31 37 views
0

復位這已被竊聽我幾天了。我有一個FrameLayout,並且佈局中的一個元素移動以顯示菜單。如果有要求,我可以粘貼代碼,因爲它是我的播放代碼,我還沒有使用任何樣式。我離題...的Android動畫上BasicAdapter排序

當用戶按下特定的按鈕它調用自定義LinearLayout這是對的另一隻股票LinearLayout.再次按下該按鈕就會把自定義的LinearLayout回到它原來的位置,上面一層從而隱藏了startAnimation菜單。

我不得不創建一個自定義LinearLayout覆蓋onAnimationEnd,這樣佈局就會停下來並停留在最終的動畫位置(我發現這是基於StackOverflow在此處提出的一些其他問題)。

的問題出現時,用戶實際按下可見菜單項。例如,其中一項可對排序列表進行排序或反向排序。看起來,我在BasicAdapter上撥打notifyDataSetChanged後,屏幕自動重繪,我的菜單被隱藏起來。我沒有關閉菜單的代碼,它幾乎就像整個Activity被重新創建或重置,當列表被告知重畫。

我還應該指出,我正在擴展Activity而不是ListActivity.我的目標是API 10(薑餅,2.3)以上。

如果任何人有任何指針,我將不勝感激。這幾天我一直在對這件事大發雷霆,這讓我瘋狂。請讓我知道,如果我可以提供更多的信息。

編輯: 這是關於覆蓋onAnimationEnd方法的SO帖子。 Android TranslateAnimation resets after animation

回答

0

您是否記錄自己打開了哪個項目的菜單?如果不是,那麼就意味着你讓UI系統爲你做的記憶,這將意味着該信息將丟失或形同虛設(因爲你已經改變了項目排序),所以所有的項目恢復到初始狀態。 解決的辦法是關聯的菜單中打開/關閉狀態,並在列表中的每個數據,那麼當適配器的getView方法被調用,您可以重建正確的UI狀態。

+0

感謝您的幫助。我一直在追蹤菜單何時被打開,但我有一種感覺,你認爲用戶界面還記得一些東西,儘管這是「錯誤」的東西。我結束了使用ScrollView,並以編程方式更改滾動位置。再次感謝你,迫使我退後一步,重新思考我的方法。 – themanatuf