Gallery默认是横向显示所有布局的,如果想竖向显示布局怎么办呢?
其实很简单,找到控制横向显示的标志就行了,由于AlbumSetPage和AlbumPage都是使用SlotView显示布局,所有查看SlotView代码即可,找到下述代码,这个WIDE变量就是控制横向还是竖向显示,true为横向,false为竖向。
private static final boolean WIDE = true;
至于怎么使用WIDE变量控制横向还是竖向布局的,看下述代码:
private void initLayoutParameters() {
......
int[] padding = new int[2];
if (WIDE) {
initLayoutParameters(mWidth, mHeight, mSlotWidth, mSlotHeight, padding);
mVerticalPadding.startAnimateTo(padding[0]);
mHorizontalPadding.startAnimateTo(padding[1]);
} else {
initLayoutParameters(mHeight, mWidth, mSlotHeight, mSlotWidth, padding);
mVerticalPadding.startAnimateTo(padding[1]);
mHorizontalPadding.startAnimateTo(padding[0]);
}
updateVisibleSlotRange();
}
也就是根据WIDE的不同,布局参数的宽高是相反的,至于界面滑动时也是根据WIDE判断取X还是Y轴滑动距离。