2011-08-27 28 views
1

所以我有一個應用程序運行在Android 2.2(在HTC的願望)。當用戶按下菜單鍵時,我的菜單從頂部和底部順滑地滑入。這工作很好。或者我想。事實證明,即使當ImageButtons不在屏幕上且不可見時,我們將它們移到視線之前的位置的hitbox激活按鈕。Android - 容器的動畫運動沒有正確更新包含的按鈕hitboxes

我曾嘗試:

_top_slide_out_menu.forceLayout(); 
_top_slide_out_menu.recomputeViewAttributes(_measure); 
_top_slide_out_menu.computeScroll(); 

沒有區別。猜測這可能是因爲我正在使用動畫而不是按鈕本身來移動父容器對象。我只能假設有一個不更新孩子點擊框的錯誤。 這個錯誤似乎也影響我應用於按鈕的後續動畫。我有一個動畫,我在之前使用不同動畫移動的按鈕上運行。這第二個動畫縮小然後增長按鈕給點擊的印象。只有一半的按鈕被重新繪製,因爲這是包含在原始按鈕位置區域內的一半。

所以問題是,有沒有人遇到過這個?除了單獨移動所有的按鈕(這會讓人感到厭煩),還有什麼可以嘗試嗎?

我很欣賞這一點的任何想法!

謝謝

回答

0

當您向其中添加動畫時,Android動畫只會改變UI控件的像素。要實際更新動畫之後的佈局,您應該實現動畫偵聽器並手動更新佈局,否則舊佈局仍然會保留在只有像素移位的位置。

+0

哦!那麼它的設計呢?這有點垃圾。我很難想象你真的想要這種效果的情況。哦,謝謝你的提示。我不認爲有一種簡單的方法可以提取已動畫的控件的新繪製座標?他們抵消了平局代碼似乎相當瘋狂,但不要只更新點擊框/主要座標。謝謝。 – BenP

+0

我知道它有點不好。特別是來自iPhone背景的人們。但是這就是android佈局系統的構建。 – blessenm