UltimateBarX
Удобная настройка состояния строки состояния и панели навигации с различными эффектами.
Подробное описание: это самая популярная библиотека для Android-строки состояния и навигационной панели на GitHub.
UltimateBarX | StatusBarCompat | StatusBarUtil | ImmersionBar | |
---|---|---|---|---|
Изменение строки состояния | Да | Да | Да | Да |
Изменение панели навигации | Да | Нет | Нет | Да |
Независимая настройка строки состояния и панели навигации без влияния друг на друга | Да | Нет | Нет | Нет |
Режим Light | Да | Да | Да | Да |
Совместимость режима Light со старыми версиями | Да | Нет | Нет | Да |
Поддержка Fragment | Да | Нет | Нет | Да |
Эффект вторжения в строку состояния | Да | Да | Да | Да |
Отсутствие эффекта вторжения в строку состояния | Да | Да | Да | Да |
Плавное переключение между эффектами вторжения и отсутствия вторжения | Да | Нет | Нет | Нет |
Многократная настройка | Да | Да | Да | Да |
Адаптация к полноэкранному режиму | Да | Нет | Нет | Да |
Адаптация панели навигации к отечественным ROM | Да | Нет | Нет | Частично |
Совместимость BottomNavigationView | Да | Нет | Нет | Нет |
Совместимость с мягкой клавиатурой adjustResize | Да | Нет | Нет | Нет |
Способ использования
В файле build.gradle корневого каталога добавьте:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
В файл build.gradle дочернего каталога добавьте:
dependencies {
// release версия
// замените $lastVersion на номер версии из предыдущего рисунка
implementation 'com.gitee.zackratos:UltimateBarX:$lastVersion'
// snapshot версия
implementation 'com.gitee.zackratos:UltimateBarX:dev-SNAPSHOT'
}
UltimateBarX предоставляет три метода:
// Требуется только настройка строки состояния, панель навигации не требуется
statusBarOnly {
// Вторжение в строку состояния (true — отсутствие вторжения, false — вторжение)
fitWindow = true
// Цвет фона строки состояния (значение цвета)
color = Color.RED
// Цвет фона строки состояния (идентификатор ресурса)
colorRes = R.color.deepSkyBlue
// Фон строки состояния drawable
drawableRes = R.drawable.bg_common
// Можно использовать один из трёх методов настройки фона, если используется несколько раз, последний будет перекрывать предыдущий
// Режим Light: текст строки состояния true: серый, false: белый Android 6.0+
light = true
// Для старых версий режим Light не действует, необходимо повторно настроить фон строки состояния
// Предотвращение совпадения цвета фона строки состояния с цветом текста, что приводит к невидимости текста
// Методы lvlColor, lvlColorRes и lvlDrawableRes действуют только в старых версиях (версии, которые не поддерживают режим Light)
lvlColor = Color.BLACK
lvlColorRes = R.color.cyan
lvlDrawableRes = R.drawable.bg_lvl
// Можно использовать только один из трёх методов lvl, если используется несколько раз, последний будет перекрывать предыдущий
}
// Настройка строки состояния
statusBar {
fitWindow = true
...
}
// Настройка панели навигации
navigationBar {
fitWindow = true
...
}
Эти три метода можно использовать в Activity и Fragment. Если текущая Activity или Fragment требует только настройки строки состояния без настройки панели навигации, рекомендуется использовать метод statusBarOnly (метод statusBar также можно использовать, но в некоторых крайних случаях могут возникнуть аномальные эффекты). На самом деле большинство (99%) внутренних требований не требуют настройки панели навигации, поэтому обычно можно напрямую использовать метод statusBarOnly. Метод statusBarOnly нельзя использовать одновременно с методом statusBar или методом navigationBar, помните! Одновременное использование может привести к аномальным эффектам (методы statusBar и navigationBar можно использовать одновременно). То есть, если требуется только настройка строки состояния, используйте метод statusBarOnly напрямую, а если необходимо одновременно настроить строку состояния и панель навигации, используйте методы statusBar и navigationBar для достижения желаемого эффекта (если требуется только настроить панель навигации, то используйте метод navigationBar, хотя такой потребности практически нет). Использование метода statusBarOnly может решить все проблемы с панелью навигации, см. объяснение в issues44.
Использование метода transparent позволяет быстро установить прозрачный эффект:
statusBarOnly {
transparent()
}
Это эквивалентно следующему коду:
statusBarOnly {
fitWindow = false
color = Color.TRANSLUCENT
}
Используйте методы get для изменения предыдущих настроек. Например, сначала используйте следующий код для установки красного цвета строки состояния, отсутствия вторжения и режима Light:
statusBarOnly {
color = Color.RED
fitWindow = true
light = false
}
Затем необходимо установить режим Light, остальные эффекты остаются неизменными, просто используйте следующий метод:
getStatusBarOnly {
light = true
}
Методы get включают getStatusBarOnly, getStatusBar и getNavigationBar.
Если макет может вторгаться в строку состояния или панель навигации, и если необходимо увеличить высоту определённого View, можно добавить следующее:
targetView.addStatusBarTopPadding()
targetView.addNavigationBarBottomPadding()
Для использования в Java:
UltimateBarX.statusBarOnly(this)
.fitWindow(true)
.colorRes(R.color.deepSkyBlue)
.light(true)
.lvlColorRes(R.color.cyan)
.apply();
Если в проекте используется Kotlin, вы также можете напрямую вызывать Kotlin. Метод расширения
UltimateBarXKt.statusBarOnly(this, barConfig -> {
barConfig.setFitWindow(true);
barConfig.setColorRes(R.color.deepSkyBlue);
barConfig.setLight(true);
barConfig.setLvlColorRes(R.color.cyan);
return null;
});
0.7.0 и более ранние версии: см. INSTRUCTION.old.
-keep class com.zackratos.ultimatebarx.ultimatebarx.** { *; }
-keep public class * extends androidx.fragment.app.Fragment { *; }
Если у вас возникли какие-либо проблемы при использовании, пожалуйста, свяжитесь со мной через WeChat.
Copyright 2020 Zackratos
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )