Отключить ShiftNode BottomNavigationView в библиотеке поддержки 28.0.0 - PullRequest
0 голосов
/ 15 октября 2018

После обновления библиотеки поддержки до v-28.0.0 BottomNavigationView режим переключения не отключается.Даже я использую app:labelVisibilityMode="labeled", но элементы перемещаются, и текст элемента обрезается при выделении.

Ранее я использовал отражения для этого.Есть ли другой способ отключить режим сдвига.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Попробуйте установить app:itemTextAppearanceActive и app:itemTextAppearanceInactive к одному и тому же стилю textAppearance или к тем же textSize и fontFamily

0 голосов
/ 09 января 2019

Для меня в XML включите используемый режим смещения, с шириной match_parent

            app:labelVisibilityMode="selected"

Отключите используемый режим смещения

            app:labelVisibilityMode="labeled"

и удалите ваши отражения.Шахта работает как обычно.

0 голосов
/ 15 октября 2018

Может быть, это может помочь (это kotlin):

@SuppressLint("RestrictedApi")
fun disableShiftMode(view: BottomNavigationView) {
    val menuView = view.getChildAt(0) as BottomNavigationMenuView
    try {
        val shiftingMode = menuView.javaClass.getDeclaredField("mShiftingMode")
        shiftingMode.isAccessible = true
        shiftingMode.setBoolean(menuView, false)
        shiftingMode.isAccessible = false
        for (i in 0 until menuView.childCount) {
            val item = menuView.getChildAt(i) as BottomNavigationItemView
            item.setShiftingMode(false)
            // set once again checked value, so view will be updated
            item.setChecked(item.itemData.isChecked)
        }
    } catch (e: NoSuchFieldException) {
        Log.e(TAG, "Unable to get shift mode field")
    } catch (e: IllegalAccessException) {
        Log.e(TAG, "Unable to change value of shift mode");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...