Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Android:另一个视图上下滑动的动画。_Android_Performance_Android Layout_Android Listview - Fatal编程技术网

Android:另一个视图上下滑动的动画。

Android:另一个视图上下滑动的动画。,android,performance,android-layout,android-listview,Android,Performance,Android Layout,Android Listview,有没有什么想法或者怎样才能像下面的图片一样实现这个动画?因为我在按下“取消”按钮时尝试在线性布局B上制作动画,所以线性布局B将从左向右滑动,但一旦线性布局B完全消失,线性布局C将直接跳到线性布局a的下方,而不是慢慢滑到线性布局a的下方。请帮助 将android:animateLayoutChanges=“true”设置为线性布局,您将自动实现这一点 首先将ViewTreeObserver.OnPreDraw侦听器添加到视图C: int bHeight = viewB.getHeight(); v

有没有什么想法或者怎样才能像下面的图片一样实现这个动画?因为我在按下“取消”按钮时尝试在线性布局B上制作动画,所以线性布局B将从左向右滑动,但一旦线性布局B完全消失,线性布局C将直接跳到线性布局a的下方,而不是慢慢滑到线性布局a的下方。请帮助


将android:animateLayoutChanges=“true”设置为线性布局,您将自动实现这一点

首先将ViewTreeObserver.OnPreDraw侦听器添加到视图C:

int bHeight = viewB.getHeight();
viewC.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    public boolean onPreDraw() {
        viewC.startAnimation(new TranslateAnimation(0, 0, bHeight, 0));
        viewC.getViewTreeObserver().removeOnPreDrawListener(this);
        return false;
    }
});
然后将B的可见性设置为“消失”

viewB.setVisibility(View.GONE);

这会隐藏视图B,导致视图C向上移动。然而,在C被绘制到它的新位置之前,我们将它从原来的位置动画化到现在的位置。

你提到的是哪条直线?B还是C?保存所有线性布局的那一个。是的,这项工作,谢谢。。这对Listview项滑动也有效吗?正如您所知,animateLayoutChanges在Honeycomb之前是不可用的,因为我要讨论的是Listview标题,我尝试了使LinearLayout C缓慢向上滑动的方法,但实际上整个视图都是Listview和LinearLayout A,B,C在listview的标题视图中,我发现问题是listview中的项直接在LinearLayout C向上滑动之前移动到位置。我想它也会随着线性布局C慢慢滑动。你有解决这个问题的办法吗?无论如何,这都是我的错,因为我没有提到那是lsitview,无论如何,谢谢!你只想要折叠动画吗?我试过了,似乎对我不起作用,返回类型应该设置为false对吗?这对listview有用吗?因为我要做的事情是在listview标题上。根据我问的问题,bogdan的回答是工作很好。但对于listview项,它仍然在linearlayout C向上滑动之前直接启动。