Intereting Posts
Квадратная компоновка GridLayoutManager для RecyclerView Как использовать View Stub в android Android Intents: запуск активности с использованием имени класса из другого приложения, имеющего тот же sharedUserId Существуют ли какие-либо официальные API / Образцы / Учебники для внедрения новых руководств по материальному дизайну? Неподтвержденное сообщение подписи GoogleSignatureVerifier (google play services 9.0.0) Android Tablet IDE для Python и Java Автозаполнение геокодера в android Предварительный просмотр камеры растягивается даже после установки правильных размеров Android softkeyboard showSoftInput vs toggleSoftInput Скрепление сертификата OCSP в Android Измените исходное изображение для просмотра изображения при нажатии Как создать векторные чертежи для Android? Как создать ColorStateList программно? Распознавание голоса прекращает прослушивание через несколько секунд Google Play In-App Purchase возвращает код ошибки -1008: null puchaseData или dataSignature

Как получить дочерний вид ViewPager в заданном элементе

Я буду держать вопрос коротким и простым, насколько это возможно по-человечески.

View activeView = mViewPager.getChildAt(mViewPager.getCurrentItem()); 

Возвращает дочерний вид, когда текущий элемент равен 0 и 1. Но если текущий элемент равен 2, он возвращает null . Почему это?

Позвольте мне перефразировать себя. Как получить дочерний вид ViewPager в любой позиции позиции?

Solutions Collecting From Web of "Как получить дочерний вид ViewPager в заданном элементе"

Оказывается, getChildAt(int) не был правильным. То, что я сделал, это получить Адаптер, используемый в ViewPager, и нашел мои взгляды оттуда:

 adapter = mViewPager.getAdapter(); Fragment fragment = adapter.getItem(mViewPager.getCurrentItem()); View activeView = fragment.getView(); 

Как уже отмечалось, viewPager будет содержать только текущего дочернего и смежных детей (currentItem () +/- 1), если иначе не указано через setOffscreenPageLimit()

Добавить тег в представление возврата Viewpager.

Ниже ссылка поможет вам: https://stackoverflow.com/a/20186828/1271891

Адаптер вашего пейджера просмотра содержит максимум 2 страницы, т. Е. 2 ​​вида / фрагмента, остальные из них переработаны. В другом случае вы не упомянули, что у вас может быть 2 страницы / просмотров в ViewPager.

Посмотрите на mViewPager.setOffscreenPageLimit()

Сколько детских взглядов должно быть?

Также ViewPager не загружает все дочерние элементы одновременно. Только тот, который он показывает, и следующий. Вы можете использовать mViewPager.setOffscreenPageLimit() , например, 3 или 4, чтобы «предварительно загрузить» больше элементов в просмотрщик.

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

Решение, которое я предлагаю:

  • Держит адаптер и вид полностью разделенным
  • Можно легко запросить представление с любой формой индекса пейджера представления, и он будет возвращен либо null если это представление в настоящее время не загружено, либо соответствующее представление.

(Этот вопрос очень прост для этого, в котором я опубликовал тот же ответ ).