Here is another way compatible with xml and no config needed:
public class SquareViewPager extends ViewPager {
public SquareViewPager(final Context context) {
super(context);
}
public SquareViewPager(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
@Override protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
final int width = getDefaultSize(getSuggestedMinimumWidth(),widthMeasureSpec);
setMeasuredDimension(width, width);
}
@Override protected void onSizeChanged(final int w, final int h, final int oldw, final int oldh) {
super.onSizeChanged(w, w, oldw, oldh);
}
}
And then:
<my.package.SquareViewPager
android:layout_width="match_parent"
android:layout_height="wrap_content"/>