Анимированная кнопка в Bottom Navigation Menu

в приложении есть Bottom Navigation Menu, и в нём есть картинки

Bottom Navigation Menu Мне нужно что-бы при нажатии на пункты меню у каждой иконки воспроизводилась своя анимация.

У меня получилось сделать анимацию при помощи animation-list, то есть покадровая анимация, но там она активируется при нажатии на отдельную кнопку.

Можно ли как-то сделать задуманное мной и если мой способ не правильный то как нужно.

MainActivity c Bottom Navigation Menu

public class MainActivity extends AppCompatActivity implements View.OnClickListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomNavigationView bottomNavigationView = (BottomNavigationView)
                findViewById(R.id.navigation);
        BottomNavigationMenuView menuView = (BottomNavigationMenuView)
                bottomNavigationView.getChildAt(0);
        try {
            Field shiftingMode = menuView.getClass()
                    .getDeclaredField("mShiftingMode");

            shiftingMode.setAccessible(false);
            shiftingMode.setBoolean(menuView, false);
            shiftingMode.setAccessible(false);

            for (int i = 0; i < menuView.getChildCount(); i++) {

                BottomNavigationItemView item =
                        (BottomNavigationItemView) menuView.getChildAt(i);
            }
        } catch (NoSuchFieldException e) {
            e.printStackTrace();

        } catch (IllegalAccessException e) {
            e.printStackTrace();

        } catch (SecurityException e) {
            e.printStackTrace();
        }
        BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
                = new BottomNavigationView.OnNavigationItemSelectedListener() {

            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                Fragment selectedFragment = null;
                switch (item.getItemId()) {
                    case R.id.action_item1:
                        selectedFragment = ItemOneFragmentTraders.newInstance();
                        break;
                    case R.id.action_item2:
                        selectedFragment = ItemTwoFragmentItems.newInstance();
                        break;
                    case R.id.action_item3:
                        selectedFragment = ItemThreeFragmentHome.newInstance();
                        break;
                    case R.id.action_item4:
                        selectedFragment = ItemFourFragmentLocations.newInstance();
                        break;
                    case R.id.action_item5:
                        selectedFragment = ItemFiveFragment.newInstance();
                        break;
                }
                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                transaction.replace(R.id.frame_layout, selectedFragment);
                transaction.commit();
                return true;
            }

        };
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.frame_layout, ItemOneFragmentTraders.newInstance());
        transaction.commit();

        bottomNavigationView.setOnNavigationItemSelectedListener
                (mOnNavigationItemSelectedListener);
    }

    @Override
    public void onPause() {
        super.onPause();
        overridePendingTransition(0,0);
    }
}

xml main_activity c Bottom Navigation Menu

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/side_background"
    tools:context="com.example.admin1.bottomtabexample.MainActivity">

    <FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/navigation"
        android:animateLayoutChanges="true">
    </FrameLayout>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="53dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginEnd="0dp"
        android:layout_marginRight="0dp"
        android:background="@drawable/bottom_background"
        app:labelVisibilityMode="labeled"
        app:itemIconTint="@color/text_color_2"
        app:itemTextColor="@color/text_color_2"
        app:menu="@menu/bottom_navigation_items" />
</RelativeLayout>

Ссылка на видео с анимацией которая у меня получилась https://vk.com/im?sel=113584227&z=video167647219_456239067%2Fbc324b7cf4dafa8708


Ответы (0 шт):