在view.layout()之后,Android视图消失

时间:2020-07-30 08:14:20

标签: java android android-studio animation

我目前正在片段中使用翻译动画。

问题是我必须使用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);

} });

enter image description here

0 个答案:

没有答案