Пример демонстрирует влияние появления мягкой клавиатуры на разметку страницы при расположении полей ввода в верхней и нижней частях экрана. Для реализации избегания мягкой клавиатуры используются различные методы, такие как установка режима избегания KeyboardAvoidMode.RESIZE
, установка режима NavDestination
на NavDestinationMode.DIALOG
и установка режима отображения ToastShowMode.TOP_MOST
. Это помогает разработчикам создавать рациональную разметку страниц при различных сценариях появления мягкой клавиатуры.
Страница списка сообщений | Страница чата | Страница электронной почты |
---|---|---|
![]() |
![]() |
![]() |
Страница комментариев | Страница входа | |
![]() |
![]() |
Инструкция по использованию
Нажмите кнопку поиска, чтобы верхняя панель преобразовалась в поле поиска. При нажатии на поле поиска появляется мягкая клавиатура, а список в центре страницы остаётся неизменным.
Нажмите на любого контакта, чтобы перейти на страницу чата. При нажатии на поле ввода внизу появляется мягкая клавиатура, список в центре страницы сжимается, а верхняя панель остаётся неизменной.3. Перейдите на страницу электронной почты. При нажатии на отправителя появляется мягкая клавиатура. Проблема сокрытия нижней панели решается путем установки режима избегания мягкой клавиатуры на KeyboardAvoidMode.RESIZE (режим сжатия).
Перейдите на страницу комментариев. При нажатии на поле ввода появляется мягкая клавиатура. Проблема смещения страницы решается установкой режима NavDestination на NavDestinationMode.DIALOG (режим диалогового окна) и установкой режима избегания мягкой клавиатуры на режим сжатия.5. Перейдите на страницу входа в диалоговое окно. При переходе на страницу автоматически появляется мягкая клавиатура, и для предотвращения смещения Toast при появлении мягкой клавиатуры используется режим отображения ToastShowMode.TOP_MOST. ### Инженерная директория
├──entry/src/main/ets
│ ├──common
│ │ └──constants
│ │ └──CommonConstants. ets // Класс констант
│ ├──entryability
│ │ └──EntryAbility. ets // Класс входа в программу
│ ├──pages
│ │ ├──ChatListPage. ets // Страница списка чатов
│ │ ├──Comment. ets // Страница комментариев
│ │ ├──ContactPage. ets // Страница контактов
│ │ ├──Index. ets // Главная страница
│ │ ├──MailPage. ets // Страница почты
│ │ └──ToastAvoid. ets // Страница входа
│ └──viewmodel
│ ├──ChatData. ets // Класс данных чата
│ └──ContactData. ets // Класс данных контактов
└──entry/src/main/resources // Директория статических ресурсов приложения
defaultFocus
TextInput в true
.showMode
в ToastShowMode.TOP_MOST
.KeyboardAvoidMode.RESIZE
(режим сжатия) решает проблему скрытия нижней панели действий.### Относительные разрешенияНе применимо.
Не применимо.
Этот пример поддерживает только стандартные системы и устройства: телефоны Huawei.
HarmonyOS система: HarmonyOS 5.0.0 Release и выше.
Версия DevEco Studio: DevEco Studio 5.0.0 Release и выше.
Версия HarmonyOS SDK: HarmonyOS 5.0.0 Release SDK и выше.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )