34 lines
1.5 KiB
Java
34 lines
1.5 KiB
Java
package net.schueller.peertube.helper;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.support.design.internal.BottomNavigationItemView;
|
|
import android.support.design.internal.BottomNavigationMenuView;
|
|
import android.support.design.widget.BottomNavigationView;
|
|
import android.util.Log;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
public class BottomNavigationViewHelper {
|
|
@SuppressLint("RestrictedApi")
|
|
public static void removeShiftMode(BottomNavigationView view) {
|
|
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
|
|
try {
|
|
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
|
|
shiftingMode.setAccessible(true);
|
|
shiftingMode.setBoolean(menuView, false);
|
|
shiftingMode.setAccessible(false);
|
|
for (int i = 0; i < menuView.getChildCount(); i++) {
|
|
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
|
|
//noinspection RestrictedApi
|
|
item.setShiftingMode(false);
|
|
// set once again checked value, so view will be updated
|
|
//noinspection RestrictedApi
|
|
item.setChecked(item.getItemData().isChecked());
|
|
}
|
|
} catch (NoSuchFieldException e) {
|
|
Log.e("BottomNav", "Unable to get shift mode field", e);
|
|
} catch (IllegalAccessException e) {
|
|
Log.e("BottomNav", "Unable to change value of shift mode", e);
|
|
}
|
|
}
|
|
} |