Android TransitionManager Просмотры ниже не анимированные - PullRequest
0 голосов
/ 27 апреля 2020

ScreenRecording

Мне нравится анимация cardView сверху, но представленные ниже виды не анимированы и просто защелкиваются. Как я могу оживить их так, чтобы не было совпадений? Это не повторное представление, это отдельные виды CardView.

Код для CardView вверху:

imageViewMuellExtend = (ImageView) root.findViewById(R.id.imageViewMuellExtend);
    imageViewMuellExtend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            muell_extend = (ConstraintLayout) root.findViewById(R.id.muell_extend);
            cardViewMuell = (CardView) root.findViewById(R.id.cardViewMuell);

            if(muell_extend.getVisibility() == View.GONE){
                TransitionManager.beginDelayedTransition(cardViewMuell, new AutoTransition());
                muell_extend.setVisibility(View.VISIBLE);
                imageViewMuellExtend.setBackgroundResource(R.drawable.ic_keyboard_arrow_up_black_24dp);
            } else {
                TransitionManager.beginDelayedTransition(cardViewMuell, new AutoTransition());
                muell_extend.setVisibility(View.GONE);
                imageViewMuellExtend.setBackgroundResource(R.drawable.ic_keyboard_arrow_down_black_24dp);
            }
        }
    });

XML Расположение CardView :

<androidx.cardview.widget.CardView
        android:id="@+id/cardViewMuell"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:cardCornerRadius="8dp">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="16dp">

                <ImageView
                    android:id="@+id/imageViewMuellIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="16dp"
                    android:src="@drawable/ic_delete_black_24dp"
                    android:tint="@color/colorAccent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:text="Müll"
                    android:textColor="#000000"
                    android:textSize="18sp"
                    app:layout_constraintBottom_toBottomOf="@+id/imageViewMuellIcon"
                    app:layout_constraintStart_toEndOf="@id/imageViewMuellIcon"
                    app:layout_constraintTop_toTopOf="@+id/imageViewMuellIcon"
                    app:layout_constraintVertical_bias="0.0" />

                <ImageView
                    android:id="@+id/imageViewMuellExtend"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_margin="16dp"
                    android:background="@drawable/ic_keyboard_arrow_down_black_24dp"
                    app:layout_constraintBottom_toBottomOf="@+id/imageViewMuellIcon"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="@+id/imageViewMuellIcon" />

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/muell_extend"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:visibility="gone"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@id/imageViewMuellIcon">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:padding="8dp"
                        android:text="@string/info_muell"
                        android:textColor="#000000"
                        android:textSize="18sp"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />
                </androidx.constraintlayout.widget.ConstraintLayout>


            </androidx.constraintlayout.widget.ConstraintLayout>


        </androidx.cardview.widget.CardView>

Каждый элемент CardView в этом фрагменте выглядит следующим образом, а элементы просто переименовываются.

1 Ответ

1 голос
/ 28 апреля 2020

Первый аргумент, который вы передаете TransitionManager.beginDelayedTransition - это sceneRoot. Переход повлияет только на просмотры внутри sceneRoot, ничего за его пределами.

В качестве этого аргумента вы передаете cardViewMuell, то есть переход будет анимировать просмотры внутри карты, по которой щелкнули, но не других карт. , Попробуйте передать sceneRoot, который содержит все карты.

...