使用动画将视图移动到 "layout_alignparentend"

Move view to "layout_alignparentend" with animation

我有一个相对布局,我在其中创建了一个 CardView,它的宽度是其父级的一半。我只想将 CardView 移动到带有动画的父级的末尾。 这是我的代码:

            TranslateAnimation animation = new TranslateAnimation(0, 180, 0, 0);
            animation.setDuration(600);
            animation.setFillAfter(true);
            backCard.startAnimation(animation);

此代码在某些屏幕上运行良好,但在其他屏幕上运行不佳。 有什么方法可以将 cardview 移动到其父相对布局的末尾并带有动画吗?

您将必须获得 RelativeLayout 末端的坐标。这将根据您的屏幕尺寸而有所不同。为此,您必须为您的 RelativeLayout 提供一个 @+id 并像任何其他视图一样使用 findViewById() 在 Java 中获取它。一旦你拥有它,你只需将视图动画化到这些坐标。像 :

int parentEnd = relativeLayout.getWidth();

backCard.animate().translationX(parentEnd).setDuration(600);

这应该可以帮助您入门。

也许您需要稍微调整一下值,即

translationX(parentEnd - (backCard.getWidth() / 2))

,因为在其他方面,它会将 CardView 的中间动画化到 RelativeLayout 的末尾,它应该看起来像是向右切掉了一半。