我使用下面的代码初始化ViewGroup。按下按钮时,我运行this.startAnimation(moveMenu)。 startAnimation将运行视图的无效,因此它将在视图上绘制一些内容。但是,如果我在下面的函数中运行setTranslationY,则视图没有正确显示图形。如果我删除它然后它工作并向下滑动然后再向上。
这不是我想要的行为,我希望viewGroup隐藏在屏幕上方并在按下按钮时向下滑动,然后向上滑动以再次隐藏。所以这就是我需要this.setTranslationY的原因。
void init(Context context) {
this.setBackgroundColor(Color.WHITE);
this.setTranslationY(this.height * -1); // if I remove this the drawing works
Resources r = this.getContext().getResources();
loadBitmapArray(0, r.getDrawable(R.drawable.the_drawable)) ;
show = new TranslateAnimation(Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, height);
show.setDuration(1000);
show.setFillAfter(true);
hide = new TranslateAnimation(Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, -height);
hide.setStartOffset(show.getDuration() + 2000);
hide.setDuration(1000);
hide.setFillAfter(true);
moveMenu = new AnimationSet(true);
moveMenu.addAnimation(show);
moveMenu.addAnimation(hide);
}