1

即時通訊我的翻譯動畫,我在android中創建的動畫運行後,我已經設置的任何clicklisteners保持在他們在之前導致異常問題的確切座標後,我花了一個問題幾天研究這個問題,還沒有找到解決辦法,我發現一些建議包括改變我的目標開發水平爲4.0和更改myLayout.layout(x,x,x,x),這些都不適合我,任何有關如何將此代碼更改爲使任何clicklistener隨佈局移動的建議?Android翻譯動畫導致Clicklistener問題

upperView = (LinearLayout) findViewById(R.id.upperView); 
    hiddenMenu = (LinearLayout) findViewById(R.id.hiddenMenu); 

    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    Integer width = metrics.widthPixels; 

    upperView.getLayoutParams().width = width; 
    hiddenMenu.getLayoutParams().width = (int) (width * 0.75); 

    int theDistance = hiddenMenu.getLayoutParams().width; 

    //Run animation 
    TranslateAnimation anim = new TranslateAnimation(0, theDistance - 0 , 0, 0); 
    anim.setDuration(1000); 
    anim.setFillAfter(true); 
    upperView.startAnimation(anim); 
+0

試圖找到一種方法來「真」位置動畫應該結束移動視圖對象;即實現動畫結束的收聽者並改變其重力或其他,並且使翻譯效果非持續,以這種方式不依賴於翻譯的位置。 – 2013-03-18 15:57:53

回答

0

有幾件事你需要知道。 android或較老的sdk會將點擊監聽器保持在對象的原始位置,您必須在新位置創建一個不可見視圖以便點擊或使用較新的sdk

+0

爲了更好地解釋這一點,該視圖與舊版SDK中的對象不同。即如果您有圖標,物理視圖僅在其原始對象仍然保留在該位置的情況下移動。您也可以在AnimationListener的幫助下移動原始對象。 – DarthCoder 2013-03-18 16:21:00

0

問題是,TranslateAnimation不能修改視圖的真實位置,只能翻譯視圖的繪製位置。

嘗試使用PropertyAnimation來做到這一點。 他們已經定位到實際查看,而不是僅僅定位視圖的繪製位置。

UPDATE: 嘗試使用類似

upperView.animate().setDuration(1000).translationX(theDistance - 0); 
+0

應該是一個評論,因爲它不是一個工作解決方案。 – ElmoVanKielmo 2013-07-08 14:29:48

+0

@ElmoVanKielmo,有一個「工作解決方案」 – acvilarim 2013-07-11 23:41:29

+0

現在確實是;) – ElmoVanKielmo 2013-07-12 06:56:24