我目前正在片段中使用翻译动画。
问题是我必须使用view.layout()手动移动视图,因为否则布局上的按钮在更改后的位置不可单击。就像本期所描述的here
所以我用view.layout()
来改变整个视图。
这可以按预期工作,因此可以在我将其移动到的位置单击我的视图(视频中的“日历对话框”起作用)。但是它正在消失(参见视频)。我已经尝试过view.setVisibility(View.VISIBLE)
和view.invalidate()
但似乎没有任何作用。
我的片段:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
layoutPinOn.setVisibility(View.VISIBLE);
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int heightScreen = size.y;
int heightLayout = 500 //500 is the height of layoutPinon
int margin_top = heightScreen - heightLayout;
Animation animation =
new TranslateAnimation(0, 0, heightScreen, margin_top);
animation.setDuration(1000);
animation.setFillAfter(true);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
int[] pos={layoutPinOn.getLeft(),layoutPinOn.getTop(),layoutPinOn.getRight(),layoutPinOn.getBottom()};
layoutPinOn.layout(pos[0], margin_top ,pos[2],pos[3] + margin_top);
}
@Override
public void onAnimationRepeat(Animation animation) { }
});
layoutPinOn.startAnimation(animation);
} });