我在自定义Dialog里实现了一个方法setAnim(),可以用来加载进入和消失的动画,实现如下:
public void setAnim(int aniXml){ WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.windowAnimations = aniXml; getWindow().setAttributes(lp); }
在Activity中使用该Dialog时设置了一个动画文件:
addBillDialog.setAnim(R.style.MyAnim_FromBottom);
此动画文件可以正常生效。
在Dialog内有一个按钮实现了点击监听,case块如下:
case R.id.tv_outlay: setAnim(R.style.MyAnim_TRIM); dismiss(); break;
测试发现,点击此按钮时,消失动画并非设置的R.style.MyAnim_TRIM,而是Activity中设置的R.style.MyAnim_FromBottom。
将case块内的dismiss()注释掉,点击后通过其他方式让Dialog消失,比如点击空白处,此时的消失动画为点击事件里设置的TRIM,修改成功。
请问,为什么这个动画文件没有立即生效?如果想要立即生效,应该怎样做?
相关分类