Циклическая анимация раскрытия не работает при первом вызове - PullRequest
0 голосов
/ 05 апреля 2020

Мне нужно реализовать анимацию кругового раскрытия после завершения перехода между двумя фрагментами, чтобы кнопка ImageButton (android:id="@+id/update_profile_pic") отображалась с хорошей анимацией

Проблема в том, что она не работает как и должно быть:

setEnterSharedElementCallback(new SharedElementCallback() {
        Handler handler = new Handler();

        @Override
        public void onSharedElementEnd(List<String> sharedElementNames,
                                       List<View> sharedElements,
                                       List<View> sharedElementSnapshots) {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {

                    update_profile_pic.setVisibility(View.GONE);
                    // get the center for the clipping circle
                    int cx = update_profile_pic.getWidth() / 2;
                    int cy = update_profile_pic.getHeight() / 2;

                    // get the final radius for the clipping circle
                    float finalRadius = (float) Math.hypot(cx, cy);

                    // create the animator for this view (the start radius is zero)
                    Animator anim = ViewAnimationUtils.createCircularReveal(update_profile_pic, cx, cy, 0f, finalRadius);

                    // make the view visible and start the animation
                    update_profile_pic.setVisibility(View.VISIBLE);
                    anim.start();
                }
            }, 600);
        }
    });

Когда я пробую эту анимацию в слушателе нажатия кнопки, нужно дважды нажать кнопку, чтобы анимация заработала

Макет выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_simple_two"
    android:layout_gravity="center_horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".FragmentB"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<com.mikhaellopez.circularimageview.CircularImageView
    android:id="@+id/profile_picture"
    android:clickable="false"
    android:src="@drawable/roni"
    app:civ_border_color="@color/fadedText"
    app:civ_border_width="0.1dp"
    android:layout_width="260dp"
    android:layout_height="260dp"
    android:layout_margin="18dp"
    android:transitionName="@string/simple_fragment_transition"/>

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:scaleType="centerInside"
    android:elevation="3dp"
    android:layout_margin="26dp"
    android:id="@+id/update_profile_pic"
    android:src="@drawable/ic_menu_camera"
    android:background="@drawable/round_button"
    android:backgroundTint="@color/colorAccent"
    app:layout_anchor="@id/profile_picture"
    app:layout_anchorGravity="bottom|right|end"
    android:visibility="gone"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...