LayoutTransition:2个容器(LayoutTransition: 2 containe

2019-10-20 03:25发布

我想了一个关于LayoutTransition官方例子 。
我为了有2个集装箱修改它。 我添加新的内容与第1'动画(上)容器和第2'(底部)容器向下移动与幻灯片动画,符合市场预期。

但是,当我从第1'容器中取出物品,整个第2'容器进入第1'容器之下,而第1'容器萎缩与动画的高度(同时播放动画的第1'最后一个元素和2第一要素“第二相交的)。
有没有什么办法,使第2'容器向上滑动,而第1'容器萎缩?

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff">

    <ScrollView android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout android:id="@+id/container1"
            android:background="@drawable/border"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:showDividers="middle"
            android:divider="?android:dividerHorizontal"
            android:animateLayoutChanges="true"
            android:paddingLeft="16dp"
            android:paddingRight="16dp" />
    </ScrollView>

    <ScrollView
        android:layout_width="match_parent" android:layout_height="wrap_content">
        <LinearLayout android:id="@+id/container2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:showDividers="middle"
            android:divider="?android:dividerHorizontal"
            android:animateLayoutChanges="true"
            android:paddingLeft="16dp"
            android:paddingRight="16dp" />
    </ScrollView>
</RelativeLayout>

Answer 1:

这可能不是正确的答案,这绝对是这个答案为时已晚,但它可能是有益的,我有其中一个项目是消失了类似的问题,我想,同时该项目已消失拓展的第二个项目。 我用setStartDelay() LayoutTransition的在两个代码LayoutTransition.CHANGE_DISAPPEARINGLayoutTransition.DISAPPEARING为0,以及setDuration()两者为相同的值。 您可能需要为那些乱七八糟的价值观LayoutTransition.CHANGING ,因为这将影响扩大的意见,但说实话LayoutTransition可能不能够吧(虽然我绝对不肯定知道),因为虽然扩大看法肯定是CHANGING时,第二个项目动起来恐怕不是CHANGE_DISAPPEARING ,但你想有一个类似的动画。

我的代码:

        customTransition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
        customTransition.setStartDelay(LayoutTransition.CHANGE_DISAPPEARING, 0);
        customTransition.setDuration(LayoutTransition.DISAPPEARING, hideArticleBar.getDuration());
        customTransition.setDuration(LayoutTransition.CHANGE_DISAPPEARING, hideArticleBar.getDuration());


文章来源: LayoutTransition: 2 containers