我是Android Studio的新手,遇到问题。
所以我在布局中包含三个按钮。我想做的是移动一个按钮,将其命名为button1,单击此按钮时将其向上移动到位置(x,y),然后将整个屏幕(不包含button1的布局)向下移动,从屏幕外移出,而button1保持在位置(x,y ),某种按钮按下效果
我使用了objectAnimator。首先,我将button1向上移动,这按预期工作,但是当我尝试向下移动整个布局时,button1随整个布局向下移动,这是我不希望的,我希望它保持在位置(x,y)片刻,然后向下移动并移出屏幕。是否可以单独使用objectAnimator,以便button1动画不依赖于整个布局
这是一个简化的XML文件
<RelativeLayout
android:height="600dp"
android:width="800dp">
<Button
android:id="@+id/button1/>
<Button
android:id="@+id/button2/>
<Button
android:id="@+id/button3/>
</RelativeLayout>
这就是我在Java中尝试过的
ObjectAnimator objAnimUp = ObjectAnimator.ofFloat(button1, "y", -600);
ObjectAnimator objAnimDown = ObjectAnimator.ofFloat(button2, "y", 1000);
objAnimUp.setDuration(500);
objAnimDown.setDuration(1000);
objAnimUp.start();
objAnimDown.start();
上面的代码向上转换button1,然后向下转换整个布局,包括button1(这是布局的一部分)。我不要那个。我希望button1保持在新位置,然后向下移动一会儿 是否可以暂时从布局中删除button1并将其独立向上移动?
我尝试了“ button1.removeParent()”,但这似乎没有什么不同。还有其他解决方案吗?
谢谢您的回答
答案 0 :(得分:0)
基本上,如果按钮使用相同的父级布局,则无法移动。您必须再添加一个父级布局,以保留该按钮和其他要使其动画的视图。 试试这个,
<RelativeLayout
android:height="match_parent"
android:width="match_parent">
<RelativeLayout
android:height="600dp"
android:width="800dp">
<Button
android:id="@+id/button2/>
<Button
android:id="@+id/button3/>
</RelativeLayout>
<Button
android:id="@+id/button1/>
</RelativeLayout>
现在应用相同的动画,它将使您想要向上移动的按钮外面的按钮起作用。