【问题标题】:LayoutTransition: 2 containersLayoutTransition:2个容器
【发布时间】:2015-09-21 17:27:51
【问题描述】:

我正在试用official example on LayoutTransition
我已经对其进行了修改,以便拥有 2 个容器。我将新项目添加到带有动画的第一个(顶部)容器中,并且第二个(底部)容器通过幻灯片动画向下移动,如预期的那样。

但是当我从第一个容器中删除项目时,整个第二个容器都在第一个容器下方,而第一个容器正在通过动画缩小高度(而动画正在播放第一个元素的最后一个元素和 2 的第一个元素'nd 相交)。
有没有办法让第 2 个容器在第一个容器收缩时向上滑动?

布局:

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

【问题讨论】:

    标签: android android-animation layouttransition


    【解决方案1】:

    这可能不是正确的答案,而且这个答案肯定为时已晚,但它可能会有所帮助,我遇到了一个类似的问题,其中一个项目正在消失,我希望第二个项目在项目消失时展开。我在代码中使用 LayoutTransition 的 setStartDelay()LayoutTransition.CHANGE_DISAPPEARINGLayoutTransition.DISAPPEARING 设置为 0,并将两者的 setDuration() 设置为相同的值。你可能不得不弄乱LayoutTransition.CHANGING 的这些值,因为这会影响扩展视图,但老实说LayoutTransition 可能无法做到(尽管我不确定),因为虽然扩展视图肯定是@ 987654327@,上移的第二个项目可能不是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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多