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

OSCHINA-MIRROR/chinasoft5_ohos-Custom-Navigation-Drawer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 11:55 2f620a3

Custom-Navigation-Drawer


Проект

  • Название проекта: Custom-Navigation-Drawer
  • Серия: адаптация и портирование сторонних компонентов OpenHarmony
  • Функционал: навигационное меню типа "выезжающее окно", которое при переходе с одного экрана на другой имеет плавное масштабирование и анимацию.
  • Состояние портирования: основной функционал завершен
  • Различие в вызовах: отсутствует
  • Версия SDK: SDK 6
  • Версия DevEco Studio: 2.2 beta1
  • Базовая версия: Release v0.0.1

Демо

screen1

Установка

  1. В файле build.gradle в корневой директории проекта добавьте:
allprojects {
    repositories {
          maven {
                    url 'https://s01.oss.sonatype.org/content/repositories/releases/'
                }
    }
}
  1. В файле build.gradle модуля entry добавьте:
    implementation('com.gitee.chinasoft_ohos:Custom-Navigation-Drawer:1.0.0')

Проект можно запустить сразу в SDK 6 и DevEco Studio 2.2 beta1. Если проект не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle, и создайте новый проект в соответствии со своей версией, затем скопируйте соответствующие файлы нового проекта в корневую директорию.

Использование

  1. В файле разметки добавьте компонент SNavigationDrawer, пример использования приведён ниже:
  <com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer
          ohos:id="$+id:navigationDrawer"
          ohos:height="match_parent"
          ohos:width="match_parent">
          <StackLayout
              ohos:id="$+id:frameLayout"
              ohos:width="match_parent"
              ohos:height="match_parent"/>
      </com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer>
```2. Затем используйте его в AbilitySlice или Fraction:

```java
    // Глобальное объявление
    SNavigationDrawer sNavigationDrawer;
    private final ArrayList<Fraction> mFragments = new ArrayList<>();
    private FractionChangeManager manager;
    // Внутри метода onStart()
    sNavigationDrawer = (SNavigationDrawer) findComponentById(ResourceTable.Id_navigationDrawer);
            List<MenuItem> menuItems = new ArrayList<>();
            menuItems.add(new MenuItem("Новости", ResourceTable.Media_news_bg));
            menuItems.add(new MenuItem("Лента", ResourceTable.Media_feed_bg));
            menuItems.add(new MenuItem("Сообщения", ResourceTable.Media_message_bg));
            menuItems.add(new MenuItem("Музыка", ResourceTable.Media_music_bg));
            sNavigationDrawer.setMenuItemList(menuItems);
            initFragment(menuItems);
            if (getAbility() instanceof FractionAbility) {
                FractionAbility ability = (FractionAbility) getAbility();
                manager = new FractionChangeManager(ability.getFractionManager(), ResourceTable.Id_frameLayout, mFragments);
            }
            sNavigationDrawer.setDrawerListener(new SNavigationDrawer.DrawerListener() {
                @Override
                public void onDrawerOpening() {
                }

                @Override
                public void onDrawerClosing() {
                }

                @Override
                public void onDrawerOpened() {
                }

                @Override
                public void onDrawerClosed() {
                }

                @Override
                public void onDrawerStateChanged(SNavigationDrawer.State newState) {
                }
            });
            sNavigationDrawer.setOnMenuItemClickListener(position -> manager.setFragments(position));
  1. Настройка``` <com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer ohos:id="$+id:navigationDrawer" ohos:height="match_parent" ohos:width="match_parent" ohos:appbarColor="$color:colorWhite" ohos:appbarTitleTextColor="$color:colorBlack" ohos:navigationDrawerBackgroundColor="$color:colorWhite" ohos:menuItemSemiTransparentColor="$color:transparent_black_percent_60" ohos:primaryMenuItemTextColor="$color:colorWhite" ohos:secondaryMenuItemTextColor="$color:colorBlack" ohos:appbarTitleTextSize="20px" ohos:primaryMenuItemTextSize="20px" ohos:secondaryMenuItemTextSize="20px" > </com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer>

Код проверен CodeCheck, ошибок нет.

Код проверен CloudTest, ошибок нет.

Проверка безопасности от вирусов прошла успешно.

Функционал текущей версии демонстрационного примера практически не отличается от оригинальной компоненты.

### Версионирование

- 1.0.0
- 0.0.1-SNAPSHOT

### Информация о правах и лицензиях

Лицензия MIT

Авторское право © 2018 года Шриканта Рафи

Указанному лицу предоставляется право бесплатно использовать, копировать, модифицировать, объединять, публиковать, распространять, передавать по сублицензии или продавать копии Программы и разрешать другим лицам делать то же самое, при условии соблюдения следующих условий:

Вышеуказанное сообщение об авторском праве и данное разрешение должны присутствовать во всех копиях или значительных частях Программы.

Программа предоставляется «как есть», без каких-либо гарантий, явных или подразумеваемых, включая, но не ограничиваясь, гарантии товарности, пригодности для конкретных целей и отсутствия нарушений прав.

В случае возникновения любого требования, иска или других действий, связанных с договором, деликтами или другими причинами, вытекающими из, связанными с или использующими Программу или использование или другие действия с ней, ответственность авторов или владельцев авторских прав не может быть установлена.


Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/chinasoft5_ohos-Custom-Navigation-Drawer.git
git@api.gitlife.ru:oschina-mirror/chinasoft5_ohos-Custom-Navigation-Drawer.git
oschina-mirror
chinasoft5_ohos-Custom-Navigation-Drawer
chinasoft5_ohos-Custom-Navigation-Drawer
master