Intereting Posts
Android 6.0 требует перезагрузки после предоставления разрешения пользователя во время выполнения Android, Как читать QR-код в моем приложении? Как получить MAC-адрес сетевого интерфейса WiFi? Использование намерения использовать камеру на Android Приложение Android ClassNotFoundException для основной деятельности Не удалось создать конвертер для моего класса в Android-платформе Retrofit2 converter-simplexml Как отключить «автономный режим» gradle в студии Android? Как использовать запрос соединения в CursorLoader, когда его конструктор не поддерживает его Андроидная апкская тихая установка Вызов startIntentSenderForResult из фрагмента (Android Billing v3) Что в TtsService могло объяснить отсутствие onUtteranceCompleted () для playEarcon ()? LoaderCallbacks.onLoadFinished не вызывается, если изменение ориентации происходит во время запуска AsyncTaskLoader Duplicate entry: com / android / volley / AuthFailureError.class при компиляции проекта в студии android Как получить цветовую температуру от коррекции цвета FragmentTransaction.replace () не работает

Вкладки вкладки в Android 4 с поддержкой библиотеки (ActionBarSherlock)

У меня возникли серьезные проблемы с получением трех слоев вложенных вкладок для работы в приложении, которое работает с Android 2.1 и выглядит как Android 4 (использует фрагменты библиотеки поддержки).

Цель

  • Приложение должно иметь ActionBar (работает, в то время как ActionBarSherlock)
  • 3 фиксированных вкладки на главном экране, которые не перемещаются в ActionBar, даже если экран достаточно большой. Вторая из этих вкладок содержит …
  • Около 4 вкладок, загруженных с сервера при первом входе в систему. Каждый из них содержит
  • Около 10 настраиваемых вкладок (например, в Play Маркете), которые были загружены с сервера, когда пользователь зарегистрировался в первый раз. Моя идея здесь заключается в использовании ViewPagerIndicator, поскольку эта библиотека написана тем же парнем, который ActionBarSherlock должен свести проблемы до минимума. Но я открыт для идей здесь). Каждая из этих swipable вкладок содержит что-то, что в настоящее время является фрагментом, но может быть изменено.

Проблема

Когда это было приложение Android 2, оно просто использовало вложенные TabActivities, но они не работают со всеми продуктами Android 4. Я не понимаю, как это сделать, возможно, особенно ограничение «вы не можете гнездиться», вызывает у меня головные боли. Кроме того, кажется, что вы можете использовать только один FragmentManager для каждой операции, поэтому моя идея иметь один в каждой вкладке второй строки не работала (все, кроме первой вкладки, оставались пустыми). Как это сделать правильно?

(Пожалуйста, поймите, что «Использовать другой графический интерфейс» не является вариантом, так как это то, о чем попросил клиент, и он не будет пересматривать)

Solutions Collecting From Web of "Вкладки вкладки в Android 4 с поддержкой библиотеки (ActionBarSherlock)"

PagerAdapter не требует, чтобы в качестве дочерних PagerAdapter были Fragments . Вы можете раздувать / управлять своими собственными представлениями. Таким образом, вы можете продолжать использовать вложенные TabActivities . Или вы можете поставить Fragments на верхнем уровне и управлять своими Views в нижнем уровне ViewPager .

Вы также можете теоретически использовать ViewFlipper если хотите сохранить фрагменты в ViewPager . Вам нужно будет написать собственный LinearLayout с Buttons качестве вкладок, но это легко. Если вы ищете Look Holo, просто установите стиль для тех, что есть в ABS.

Другой вариант – использовать TabHost без использования TabActivity . Вы даже можете использовать его с фрагментами. См. Пример здесь .

Также обратите внимание: если вы ищете стиль Google Play для ViewPagerIndicator, который теперь включен в пакет поддержки: PagerTitleStrip .

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

Тем не менее,

Я должен сказать, что это звучит как ужасный шаблон пользовательского интерфейса. Хуже того, мы говорим о множестве раздутых взглядов в одной Activity . Здесь вы можете столкнуться с проблемами памяти, в зависимости от того, что отображается. Я предлагаю использовать ViewStubs и переработать, если вы держите ViewPager внизу.

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

Обратитесь к официальному веб-сайту дизайна и покажите примеры популярных шаблонов навигации, подобных тем, которые были найдены в Gmail, YouTube, Google+, Evernote и т. Д. Недавно я обратился к клиенту с запросом того же шаблона, который вы описали, и после нескольких недель нажатия Смог убедить их в том, что более чем 2 слоя вкладок неприемлемы .

Вы также можете показать им свою страницу « Стена позора» +, в которой указаны плохие шаблоны дизайна, используемые в популярных приложениях для Android : Android Anti-Patterns . 🙂