Java “视图权重”设置为零后,平移动画不显示

Java “视图权重”设置为零后,平移动画不显示,java,android,android-animation,Java,Android,Android Animation,我正在尝试为我的应用程序中菜单的显示/隐藏设置动画。使用showMenu功能时,动画效果良好。但是,当我使用hideMenu功能时,动画不会播放,菜单仍然可见 如果不包括动画,hideMenu工作得很好。如果在showMenu功能中使用,则菜单隐藏动画效果良好;当使用hideMenu功能时,showMenu动画不起作用 我假设动画没有播放,因为在设置动画后,相关视图的权重立即设置为零。我该怎么做 private void showMenu() { animate(tableLayout,

我正在尝试为我的应用程序中菜单的显示/隐藏设置动画。使用showMenu功能时,动画效果良好。但是,当我使用hideMenu功能时,动画不会播放,菜单仍然可见

如果不包括动画,hideMenu工作得很好。如果在showMenu功能中使用,则菜单隐藏动画效果良好;当使用hideMenu功能时,showMenu动画不起作用

我假设动画没有播放,因为在设置动画后,相关视图的权重立即设置为零。我该怎么做

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.001f而不是0f