Ответ 1
Я предполагаю, что это было сделано, потому что эти методы всегда вызывают с ViewGroup
, а не с более общим View
. Таким образом, предоставление параметра как ViewGroup
является удобством, позволяющим разработчикам избегать всегда проверки и ввода ввода. Поэтому вместо просмотра этого кода снова и снова:
ViewGroup parent;
if (container instanceof ViewGroup) {
parent = (ViewGroup) container;
}
else {
throw new IllegalArgumentException("container must be a ViewGroup");
}
Исполнитель может просто напрямую использовать container
.
И, фактически, вы можете видеть, что это именно причина в сообщении от Adam Powell:
Ошибка 5327146 - Tweaks и документы API ViewPager
PagerAdapter ранее рассматривал экземпляры View как параметры для нескольких его методов, ведущих к большому количеству литья в ViewGroup в адаптере реализации.
Измените их, чтобы взять группы представлений. Реализация по умолчанию осуществляется через к устаревшим заглушкам с существующими сигнатурами, адаптеры, чтобы продолжать работать без изменений.