對於我當前的項目,我正在構建一個包含句柄和內容的下拉視圖。 當我拖動手柄時,一切都很好。然後,我放開它並開始動畫,以完全打開或關閉下拉菜單。Android視圖動畫失去視圖的位置
第一:沒有它的動畫一切都很好,不過關當然不是光滑......
所以我增加了本作的動畫:
ObjectAnimator animHandle = ObjectAnimator.ofFloat(mHandleContainer, "y", newHandlePosition);
ObjectAnimator animContent = ObjectAnimator.ofFloat(mContent, "y", newContentPosition);
final AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(animHandle, animContent);
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.setDuration(MAX_ANIMATION_DURATION);
animatorSet.start();
一切都只是罰款utill這裏。
但後來,當我再次按下手柄(mHandleContainer),我想知道手柄的位置,所以我做了
mHandleContainer.getTop()
而這正是這一切都錯了。 當我初始化自定義組件時,我將把手的頂部設置爲0. 到目前爲止這麼好,然後我開始拖動,當我放開時,我看到我將動畫到1134像素的位置。這是好的(意味着下拉將完全打開)。
但後來我再次按下手柄,讓高層(共達()),它仍然返回我0.
我想的是,我的觀點的共達()函數再次回到我1134。
這可能嗎?
或者我應該在我的AnimatorListener的onAnimationEnd方法中做些什麼? 我已經嘗試在那裏做一個mHandleContainer.layout(..),然後我的getTop()是好的,但隨後我的佈局被擰緊...
這裏的技巧讓動畫結束正確的位置(就像它一樣)並堅持在視圖中的位置?
我已經看過SO(和Google),但沒有找到有用的東西。接近我的問題,我能找到的唯一的是這樣的:NineOldAndroids, not clickable view after rotation or move 但也沒有幫助...