2014-04-11 2 views
1

내 앱에서 메뉴 표시/숨기기를 애니메이션으로 처리하려고합니다. showMenu 함수를 사용하면 애니메이션이 제대로 작동합니다. 그러나 hideMenu 함수를 사용하면 애니메이션이 재생되지 않고 메뉴가 계속 표시됩니다.나중에 뷰의 가중치가 0으로 설정된 경우 번역 애니메이션이 표시되지 않습니다.

애니메이션이 포함되어 있지 않으면 hideMenu가 정상적으로 작동합니다. menu_hide 애니메이션은 showMenu 함수에서 사용하면 잘 작동합니다. 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 가중치가 무시 된보기가 있습니다. 0f 대신 0.001f를 시도하십시오.

관련 문제