Создание пользовательского интерфейса, такого как Chrome для Android
Я хочу реализовать это поведение [https://github.com/gleue/TGLStackedViewController] в приложении, которое я пытаюсь сделать.
Ближайшая вещь/эффект, который я хочу достичь, - это поведение браузера Google Chrome.
- Интерфейс плит/карт
- Возможность доступа к форме навигации (доступ к другим вкладкам), когда пользователь вытаскивает адресную строку.
- Возможность переустановки вкладок в любом порядке, который пожелает пользователь.
![]()
Фото из этого Платформа Android: как реализовать пользовательский интерфейс, подобный колоде карт? Вопрос SO
Есть ли там кто-нибудь, кто пытался реализовать такое поведение? Вы, ребята, знаете какие-нибудь библиотеки, которые могут помочь в достижении этого эффекта? Было бы очень полезно! Спасибо вам
Ответы
Ответ 1
Пакет systemUI/Recents
, как указано Andrei
, может быть вашей отправной точкой. Это добавляет немного больше к плоской передаче хромированных вкладок.
Я имел в виду рефакторинг пакета systemUI/Recents
с тех пор, как получил обновление L. Я, наконец, добрался до него.
![enter image description here]()
Пример проекта размещен по адресу: Ссылка
Несмотря на то, что группа просмотра перерабатывает, она обновляет карту прогресса (дочерние свойства) для всех детей на каждом шаге прокрутки. Это приведет к задержкам с большими наборами данных. Для нескольких сотен это должно быть хорошо.
Пример проекта использует Picasso для загрузки и кэширования изображений из LoremPixel. Поскольку они являются случайными изображениями и могут повторяться, вы можете убедиться, что они правильно связаны, глядя в нижнем левом углу изображения.
Ответ 2
Если вам нравится просматривать код AOSP, функциональность, которую вы ищете, на самом деле является открытым исходным кодом, и вы можете найти ее в Android 5.0 на экране последних приложений. Это - это код, который вы хотите посмотреть на github.
Представление, которое вы хотите извлечь из AOSP, это RecentsView. Это лучший подход.
Вы также можете рассмотреть возможность расширения StackView и переопределения onLayout(), чтобы вы получили дочерние элементы.
Еще одна опция - расширить ListView, переопределить drawChild или макетные снимки и попытаться сдвинуть представления в соответствии с их положением. Вы можете найти вдохновение здесь и здесь