Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Внести вклад в разработку кода
Синхронизировать код
README.md
XPopup
Введение
- Встроено несколько видов часто используемых всплывающих окон и около десятка хороших анимаций, что делает процесс создания всплывающих окон и анимации очень простым. На данный момент не существует эффектов всплывающих окон, которые нельзя было бы реализовать с помощью XPopup.
Встроенные всплывающие окна позволяют использовать существующую компоновку проекта, а также использовать анимацию, взаимодействие и логику, предоставляемые XPopup.
- Анимация пользовательского интерфейса лаконична, соответствует Material Design, при разработке анимации учитывалось множество деталей, переходов и изменений уровня.
- Отличная простота использования: все настраиваемые всплывающие окна требуют только наследования соответствующего класса, реализации собственной компоновки и написания логики в методе
onCreate
, как в случае с Ability.
- Превосходная производительность, плавная анимация; тщательно оптимизированная анимация, которая затрудняет возникновение зависаний.
Концепция дизайна:
Объединив распространённые сценарии всплывающих окон, я разделил их на несколько категорий:
- Тип Center — всплывающее окно, которое появляется посередине, например, всплывающие окна подтверждения и отмены, всплывающее окно загрузки.
- Тип Bottom — всплывает снизу страницы, например, всплывающее окно общего доступа, всплывающее окно комментариев Zhihu, которое появляется снизу.
- Тип Attach — положение всплывающего окна должно быть привязано к определённому компоненту или точке касания, подобно эффекту PopDialog в системе.
- Тип Drawer — появляется из угла окна или справа и поддерживает жесты перетаскивания; преимущество заключается в том, что он отделяется от интерфейса и может реализовать эффект DrawerLayout на любом интерфейсе.
- ImageViewer — тип всплывающего окна для просмотра больших изображений, аналогично всплывающему окну просмотра изображений на juejin.
- FullScreen — полноэкранное всплывающее окно, похожее на Ability, можно настроить любой аниматор; подходит для реализации входа в систему и выборочных эффектов интерфейса.
- Позиция — свободное позиционирование всплывающего окна, всплывающее окно свободно размещается в любом месте экрана, в сочетании с мощным аниматором можно реализовать различные эффекты.
Демонстрация
Встроенные всплывающие окна (можно повторно использовать существующую компоновку) |
Список всплывающих окон типа Center |
 |
 |
Всплывающие окна списка типа Bottom |
Пользовательские всплывающие окна типа Bottom |
 |
 |
Привязанные всплывающие окна типа Attach (элегантная анимация, интеллектуальное позиционирование, поддержка длительного нажатия) |
Пользовательские привязанные всплывающие окна типа Attach (с пузырьками и без пузырьков) |
 |
 |
Пользовательские всплывающие окна нижнего колонтитула |
Полноэкранные всплывающие окна (могут заменить Ability) |
 |
 |
Позиционные всплывающие окна свободного позиционирования (появляются в любом месте на экране) |
Всплывающие окна типа Drawer |
 |
 |
Пользовательские всплывающие окна и пользовательская анимация |
Встроенный элегантный и красивый аниматор, который можно сочетать со всплывающими окнами |
 |
 |
Реализация поиска по ключевым словам, легко и просто |
Всплывающее окно ImageViewer для просмотра больших картинок |
 |
 |
Всплывающее окно для просмотра больших картинок, настраиваемый интерфейс |
Используется вместе с PageSlider |
Нет скриншота |
Нет скриншота |
Поддержка сверхдлинных изображений (плавный переход изображения, элегантное изменение) |
Всплывает в фоновом режиме приложения (реализуется одной строкой кода для запроса разрешений) |
Не поддерживается |
Не поддерживается |
Частичное теневое всплывающее окно PartShadow |
Может появляться сверху и снизу |
Не поддерживается |
Не поддерживается |
Зависимости
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:XPopup:1.1.5'
Требования для запуска entry
С помощью DevEco studio и загрузите SDK.
Измените версию classpath в файле build.gradle в папке dependencies → classpath на соответствующую версию (то есть версию, используемую в вашем новом проекте IDE).
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )