2014-04-11 61 views
1

我試圖在我的應用程序中顯示/隱藏菜單的動畫。當我使用showMenu功能時,動畫效果很好。但是,當我使用hideMenu功能時,動畫不會播放,菜單仍然可見。翻譯動畫未顯示視圖重量後設置爲零

沒有包含動畫,hideMenu工作正常。如果在showMenu函數中使用menu_hide動畫,則工作正常;放入hideMenu函數時showMenu動畫不起作用。

我假設動畫沒有播放,因爲所設置的動畫設置後,視圖的權重被設置爲0。我如何解決這個問題?

private void showMenu() { 
    animate(tableLayout, R.anim.menu_show); 
    setWeights(3, 7, 10); 
    ShowMenu.setVisibility(View.GONE); 
} 

private void hideMenu() { 
    animate(tableLayout, R.anim.menu_hide); 
    setWeights(3, 17, 0); 
    ShowMenu.setVisibility(View.VISIBLE); 
} 

private void setWeights(int i, int j, int k) { 
    int titlePadding = (int) getResources().getDimension(R.dimen.small_pad); 
    LayoutParams titleParams = new LayoutParams(matchParent, 0, i); 
    titleParams.setMargins(titlePadding, 0, titlePadding, 0); 
    titleLayout.setLayoutParams(titleParams); 
    listLayout.setLayoutParams(new LayoutParams(matchParent, 0, j)); 
    tableLayout.setLayoutParams(new LayoutParams(matchParent, 0, k)); 
} 

public void animate(View view, int animationId) { 
     view.setAnimation(AnimationUtils.loadAnimation(this, animationId)); 
} 

回答

0

我有同樣的問題,似乎有0重量的視圖被忽略。嘗試0.001f而不是0f。