1

LayoutTransition で公式の例を試しています。
コンテナが2つになるように変更しました。アニメーションで 1 番目 (上) のコンテナーに新しい項目を追加すると、予想どおり、2 番目 (下) のコンテナーがスライド アニメーションで下に移動します。

しかし、1 番目のコンテナからアイテムを削除すると、2 番目のコンテナ全体が 1 番目のコンテナの下に移動しますが、1 番目のコンテナはアニメーションで高さを縮小しています (アニメーションが 1 番目の最後の要素と 2 の最初の要素を再生している間) 'nd は交差しています)。
1 番目のコンテナが縮小している間に 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>
4

1 に答える 1

0

これは正しい答えではない可能性があり、この答えには間違いなく遅すぎますが、役立つかもしれません.1つのアイテムが消えるという同様の問題があり、アイテムが消えている間に2番目のアイテムを展開したかった. setStartDelay()コードで LayoutTransition を と 0 の両方LayoutTransition.CHANGE_DISAPPEARINGLayoutTransition.DISAPPEARING使用し、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());
于 2015-09-21T09:27:51.977 に答える