Значки центральной нижней панели навигации

Я пытаюсь расположить значки ВСЕ по центру, я уже отключил режим сдвига, используя следующий код:

/**
 * This is done to remove the shift animation introduced by Android on the bottom navigation view
 * https://stackoverflow.com/a/41690461/4243027
 */
@SuppressLint("RestrictedApi")
public static void disableShiftMode(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);
            item.setPadding(0,15,0,0);
            // set once again checked value, so view will be updated
            //noinspection RestrictedApi
            item.setChecked(item.getItemData().isChecked());
        }
    } catch (NoSuchFieldException e) {
        Log.e("BNVHelper", "Unable to get shift mode field", e);
    } catch (IllegalAccessException e) {
        Log.e("BNVHelper", "Unable to change value of shift mode", e);
    }
}

И установите заголовок на ""

android:title=""

Я также пытался сделать следующее https://stackoverflow.com/a/40234361/4243027, но это тоже не работает .

Мой нижний вид навигации выглядит так:

Нижняя панель навигации

Я использую implementation "com.android.support:design:27.0.1"

ИЗМЕНИТЬ:

Как вы можете видеть в Layout Inspector, размеры значков такие же, 63x63 px, но Y отмеченного значка на 5 px меньше.

Инспектор макетов


person aleixrr    schedule 31.07.2018    source источник
comment
Эти не по центру? Выбранная база иконок выглядит немного выше остальных, но я думаю, что это из-за разного размера.   -  person Deividas Strioga    schedule 31.07.2018
comment
@DeividasStrioga Значок с флажком немного перемещается вверх, это немного, но вы можете увидеть эффект, все размеры значков одинаковы в чертежах.   -  person aleixrr    schedule 31.07.2018
comment
Тогда это из-за его размера. Это иконки svg? Если это так, вы можете попробовать настроить их размеры.   -  person Deividas Strioga    schedule 31.07.2018
comment
@DeividasStrioga Да, это значки SVG, но все размеры одинаковые 24x24 dp.   -  person aleixrr    schedule 31.07.2018
comment
Тогда разница в размерах путей. Попробуйте увеличить размер более мелких значков.   -  person Deividas Strioga    schedule 31.07.2018
comment
При проверке Layout Inspector я вижу, что непроверенные значки ara находятся на y = 31, а отмеченный значок находится на y = 36.   -  person aleixrr    schedule 31.07.2018
comment
Вместо того, чтобы отключать режим сдвига, попробуйте добавить эту строку в xml: app:itemHorizontalTranslationEnabled=false Если это не сработает, попробуйте увеличить размеры svg для меньших значков.   -  person Deividas Strioga    schedule 31.07.2018
comment
Как вы можете видеть на добавленном изображении инспектора компоновки, размеры значков такие же, но отмеченный не центрируется на панели. Также линия, которую вы предлагаете, недоступна в моей версии дизайна поддержки.   -  person aleixrr    schedule 31.07.2018


Ответы (1)


Начиная с библиотеки поддержки проектирования 28.0.0-alpha1 вы можете использовать свойство

приложение: меткаVisibilityMode = "без метки"

person Sushan Bastola    schedule 25.12.2018