关于GridView的水平和竖直间距设置,一开始这样设置之后发现,不同的手机屏幕列的间距的不一样的。当时不知道是为什么,明明设置了固定值,却显示不同的间距,很苦恼。
android:horizontalSpacing="5dip"
android:verticalSpacing="5dip"
eg:
1080 × 1920屏幕
720 × 1280屏幕
后来才发现,因为设置了
android:numColumns="auto_fit"//表示有多少列,如果设置为auto_fit,将根据columnWidth和Spacing来自动计算
android:stretchMode="columnWidth" //意为-->如何填满空余的位置
举个例子:
android:verticalSpacing="35dip" //grid元素之间的竖直间隔
android:horizontalSpacing="5dip" //grid元素之间的水平间隔
android:numColumns="auto_fit"
android:columnWidth="100dip" //一般建议采用有像素密度无关的dip或者dp来表示
android:stretchMode="columnWidth" //如何填满空余的位置
(eg:模拟器采用WVGA800*480,每排4列,有4*100+5*3=415,还余65dip的空间,如果是columnWidth,则这剩余的65将分摊给4列,每列增加16/17dip。如果采用SpacingWidth,则分摊给3个间隔空隙)