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

OSCHINA-MIRROR/harmonyos_samples-settings

Клонировать/Скачать
README.md 8.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.06.2025 10:48 87486ae

Настройка страницы приложения

Описание

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

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

Предварительный просмотр

Отображение примера на различных размерах окна.

settings.gif

Инструкции по использованию:

  1. Запустите приложение и посмотрите, как оно отображается в полноэкранном режиме.
  2. Последовательно нажмите WLAN -> Дополнительные настройки WLAN, чтобы посмотреть, как оно отображается.
  3. Последовательно нажмите Дополнительные соединения -> NFC, чтобы посмотреть, как оно отображается.### Структура проекта
├──features/settingitems/src/main/ets              // Код
│  ├──components
│  │  ├──ItemDescription. ets                       // Описание каждого модуля группы элементов
│  │  ├──ItemGroup. ets                             // Модуль группы элементов
│  │  ├──MainItem. ets                              // Модуль основной структуры
│  │  ├──SearchBox. ets                             // Модуль поисковой строки
│  │  ├──SubItemArrow. ets                          // Модуль перехода (стрелка)
│  │  ├──SubItemToggle. ets                         // Модуль переключателя состояния
│  │  └──SubItemWifi. ets                           // Модуль списка подсетей
│  ├──moreconnections  
│  │  ├──MoreConnectionsItem. ets                   // Модуль дополнительных соединений
│  │  └──Nfc. ets                                   // Класс для работы с объектом NFC
│  ├──settinglist
│  │  └──SettingList. ets                           // Модуль страницы настроек
│  └──wlan                                    
│     ├──WlanMoreSetting. ets                       // Модуль дополнительных настроек WLAN
│     └──WlanSettingItem. ets                       // Модуль настроек WLAN
└──entry/src/main/resources                        // Директория ресурсов приложения
```### Конкретная реализация
В этом примере описывается, как реализовать сценарии с одноколонной и двухколонной разметкой при различных разрешениях экрана. Основные аспекты реализации включают:
#### Реализация отображения одноколонной и двухколонной разметкиОтображение одноколонной и двухколонной разметки реализуется с помощью компонента Navigation, который состоит из двух областей: Navbar (основная страница) и Content (подстраница). Компонент Navigation поддерживает три режима: Stack, Split и Auto.

1. Режим Stack: навигационная панель и область содержимого отображаются независимо, как несколько страниц. Отображение: переход с Navbar (основная страница) на Content1 (страница WLAN) и далее на Content2 (дополнительные режимы WLAN).
2. Режим Split: навигационная панель и область содержимого отображаются в двух колонках. Отображение: Navbar + Content1.
3. Режим Auto: компонент Navigation автоматически выбирает подходящий режим в зависимости от размера окна. При ширине окна менее 520vp используется режим Stack, при ширине окна 520vp и более — режим Split. При изменении размера окна компонент Navigation автоматически переключается между режимами Stack и Split. [Исходный код](products/default/src/main/ets/pages/Index.ets).#### Реализация перехода по клику или обновления
Компонент Navigation обычно используется вместе с компонентами NavRouter и NavDestination:
* Компонент NavRouter используется для управления отображением и обновлением области Content компонента Navigation. Он должен содержать два дочерних узла.
1. Контейнерный компонент — непосредственно управляет отображением NavRouter.
2. Компонент NavDestination — обновляет отображение области Content компонента Navigation.
3. Компонент NavRouter использует событие обратного вызова onStateChange для уведомления разработчика о состоянии NavRouter: при активации NavRouter и загрузке соответствующего дочернего компонента NavDestination событие onStateChange(true) вызывается; при отключении соответствующего дочернего компонента NavDestination событие onStateChange(false) вызывается.
* Компонент NavDestination используется для фактического обновления отображения области Content компонента Navigation.
* Например, в этом примере функция WLAN является первым дочерним узлом NavRouter, а подстраница WLAN — вторым дочерним узлом NavRouter. [Исходный код](features/settingitems/src/main/ets/wlan/WlanSettingItem.ets).#### Реализация многоуровневого перехода
Компонент Navigation поддерживает автоматическое переключение между одноколонной и двухколонной разметкой, а также автоматическое добавление кнопки возврата и обработку событий кнопки возврата системы. [Исходный код](features/settingitems/src/main/ets/wlan/WlanMoreSetting.ets).
1. Активация элемента WlanSettingItem в списке SettingList позволяет загрузить и отобразить WlanSetting.
2. Активация элемента WlanMoreSettingItem в WlanSetting позволяет загрузить и отобразить WlanMoreSetting.

### Релевантные права### Зависимости

Нет.

### Ограничения и условия

1. Этот пример поддерживает только стандартные системы, поддерживаемые устройства: телефоны Huawei.

2. Система HarmonyOS: HarmonyOS 5.0.0 и выше.

3. Версия DevEco Studio: DevEco Studio 5.0.0 и выше.

4. Версия SDK HarmonyOS: HarmonyOS 5.0.0 SDK и выше.

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

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

1
https://api.gitlife.ru/oschina-mirror/harmonyos_samples-settings.git
git@api.gitlife.ru:oschina-mirror/harmonyos_samples-settings.git
oschina-mirror
harmonyos_samples-settings
harmonyos_samples-settings
master