如何将子视图独立移动到父视图?

How to move child view independently to parent view?

我是 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()" 但这似乎没有什么不同。还有其他解决方案吗?

感谢您的回答

基本上,如果按钮在同一父布局中,则不能移动。您必须再添加一个父布局,该布局将按住按钮和您想要设置动画的其他视图。 试试这个,

 <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>

现在应用相同的动画,外面的按钮就是您要向上移动的按钮。