Глядя на внутренности класса ViewPager в банке совместимости:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
// For simple implementation, or internal size is always 0.
// We depend on the container to specify the layout size of
// our view. We can't really know what it is since we will be
// adding and removing different arbitrary views and do not
// want the layout to change as this happens.
setMeasuredDimension(getDefaultSize(0, widthMeasureSpec), getDefaultSize(0, heightMeasureSpec));
...
}
Казалось бы, что реализация ViewPager не измеряет мнения детей, а просто устанавливает ViewPager быть один стандартный вид основан на том, что родитель переходит. Когда вы проходите wrap_content, поскольку пейджер представления фактически не измеряет его содержимое, он занимает всю доступную область.
Моей рекомендацией было бы установить статический размер на вашем ViewPager в зависимости от размера ваших представлений для детей. Если это невозможно (например, представления для детей могут отличаться), вам нужно будет либо выбрать максимальный размер, либо заняться дополнительным пространством в некоторых представлениях, либо расширить ViewPager и предоставить onMeasure, которые измеряют детей. Одна из проблем, с которой вы столкнетесь, заключается в том, что пейджер представления был разработан так, чтобы он не менялся по ширине, когда показывались разные виды, поэтому вы, вероятно, будете вынуждены выбирать размер и оставаться с ним
пожалуйста звезда вопрос https://code.google.com/p/android/issues/detail?id=54604 – Christ
FYI: Вчера вопрос о выпуске 54604 был закрыт Google. Если у вас все еще есть проблема, я предлагаю вам открыть новую проблему и поместить сюда ссылку. – Christ
Возможный дубликат [Android: я не могу иметь ViewPager WRAP \ _CONTENT] (http://stackoverflow.com/questions/8394681/android-i-am-unable-to-have-viewpager-wrap-content) – Raanan