Анимированная кнопка в 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