1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zackratos-UltimateBarX

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 06:12 1ea6e1c

UltimateBarX

Удобная настройка состояния строки состояния и панели навигации с различными эффектами.

Подробное описание: это самая популярная библиотека для Android-строки состояния и навигационной панели на GitHub.

  • Можно настроить различные эффекты, такие как прозрачность, полупрозрачность, фиксированный цвет и т. д.
  • Строка состояния и панель навигации настраиваются отдельно, не влияя друг на друга.
  • Поддерживает Android 4.4 и выше, обеспечивая единообразие эффектов в разных версиях системы.
  • Для старых версий (без затемнения) можно повторно настроить фон строки состояния и панели навигации.
  • Поддержка Activity и Fragment.
  • В одном Activity или Fragment можно многократно настраивать разные эффекты.
  • Адаптация к экранам с вырезом, без выреза, с отверстием и полноэкранным режимам.
  • Совместимость с MIUI, EMUI, Funtouch и другими ROM.
  • Подходит для горизонтальных и вертикальных экранов.
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.

ProGuard

-keep class com.zackratos.ultimatebarx.ultimatebarx.** { *; }
-keep public class * extends androidx.fragment.app.Fragment { *; }

Скриншоты

 

 

 

Change Log

CHANGELOG

Свяжитесь со мной

Если у вас возникли какие-либо проблемы при использовании, пожалуйста, свяжитесь со мной через WeChat.

License

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zackratos-UltimateBarX.git
git@api.gitlife.ru:oschina-mirror/zackratos-UltimateBarX.git
oschina-mirror
zackratos-UltimateBarX
zackratos-UltimateBarX
master