Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相对布局中的动画重新定位其他视图_Java_Android_Layout_Animation - Fatal编程技术网

Java 相对布局中的动画重新定位其他视图

Java 相对布局中的动画重新定位其他视图,java,android,layout,animation,Java,Android,Layout,Animation,我对动画有问题,以下是我的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new Handler().postDelayed(new Runnable(){ @Override public void run() { Ani

我对动画有问题,以下是我的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    new Handler().postDelayed(new Runnable(){

        @Override
        public void run() {
            Animation anim= new TranslateAnimation(0, 0, 0, -200);
            anim.setDuration(2000);
            anim.setFillAfter(true);
            findViewById(R.id.button1).startAnimation(anim);

        }

    }, 2000);
}
主要布局为:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<Button 
    android:id="@+id/button1" 
    android:layout_width="fill_parent" 
    android:text="Button" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:minHeight="120sp"/>

<Button 
    android:id="@+id/button2" 
    android:layout_width="fill_parent" 
    android:text="Button" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/button1" 
    android:minHeight="120sp"/>

</RelativeLayout>

我想让按钮2和按钮1一起移动。我知道我可以对两个按钮应用相同的动画,它们一起移动,但是按钮2将移动到下边缘


有人知道我该怎么解决吗?

我不知道你真正想要实现什么。我猜您希望按钮2在动画之后保持在布局的顶部。我说得对吗

据我所知,在Android中,视图在设置其他视图动画时不会重新定位自己。当将视图的可见性设置为“消失”时,它们会重新定位

因此,你可以:

  • 对按钮2应用不同的动画,以便将其移动到您希望的位置
  • 将按钮1的可见性设置为动画后消失:

    button1.setVisibility( View.GONE );
    

  • 我不确定你真正想要实现什么。我猜您希望按钮2在动画之后保持在布局的顶部。我说得对吗

    据我所知,在Android中,视图在设置其他视图动画时不会重新定位自己。当将视图的可见性设置为“消失”时,它们会重新定位

    因此,你可以:

  • 对按钮2应用不同的动画,以便将其移动到您希望的位置
  • 将按钮1的可见性设置为动画后消失:

    button1.setVisibility( View.GONE );
    

  • 首先,Android动画不会影响布局。你的按钮并没有真正移动,只是看起来好像移动了


    其次,如果您希望两个按钮一起移动,请将它们放在线性布局中,并设置动画。

    首先,Android动画不会影响布局。你的按钮并没有真正移动,只是看起来好像移动了


    其次,如果您希望两个按钮一起移动,请将它们放在线性布局中,并设置动画。

    谢谢您的回答。所以如果我想要按钮2展开直到填满整个窗口,我应该结合平移和垂直缩放?然后将按钮1向右移动?在代码中,如果您只是将按钮1设置为“移动”,则按钮2会展开并填充整个布局,因为android:layout\u height=“fill\u parent”属性。所以只要在动画之后将button1设置为GONE即可。是的,但我想为GONE时刻设置动画,将button1向上转换并不是那么容易。你有一个相关的问题。在您的情况下,我建议为button2使用不同的动画。希望有帮助。谢谢你的回答。所以如果我想要按钮2展开直到填满整个窗口,我应该结合平移和垂直缩放?然后将按钮1向右移动?在代码中,如果您只是将按钮1设置为“移动”,则按钮2会展开并填充整个布局,因为android:layout\u height=“fill\u parent”属性。所以只要在动画之后将button1设置为GONE即可。是的,但我想为GONE时刻设置动画,将button1向上转换并不是那么容易。你有一个相关的问题。在您的情况下,我建议为button2使用不同的动画。希望能有帮助。